সিঙ্ক অ্যাডাপটর ফ্রেমওয়ার্ক চায় প্রতিটা সিঙ্ক অ্যাডাপটরের একটি একাউন্ট টাইপ থাক। আপনি Add the Authenticator Metadata File অধ্যায়ে আপনি একাউন্ট টাইপ ভ্যালু ডিক্লেয়অর করেছিলেন। এখন আপনাকে অ্যান্ড্রয়েড সিস্টেমের মধ্যে এই একাউন্ট টাইপ সেট আপ করতে হবে। একাউন্ট টাইপ সেটআপ করতে, একটি ডামি (প্রতিকৃতি) একাউন্ট যুক্ত করুন যা addAccountExplicitly()কল করার মাধ্যমে একাউন্ট টাইপ ব্যবহার করে।
পদ্ধতি কল করার সবচেয়ে ভালো জায়গা হচ্ছে আপনার অ্যাপের প্রারম্ভিকি কার্যক্রমের onCreate()পদ্ধতির মধ্যে। নিচের কোড চিত্রটি এটা কীভাবে করতে হয় তা দেখায়:
public class MainActivity extends FragmentActivity {
...
...
// Constants
// The authority for the sync adapter's content provider
public static final String AUTHORITY = "com.example.android.datasync.provider"
// An account type, in the form of a domain name
public static final String ACCOUNT_TYPE = "example.com";
// The account name
public static final String ACCOUNT = "dummyaccount";
// Instance fields
Account mAccount;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
// Create the dummy account
mAccount = CreateSyncAccount(this);
...
}
...
/**
* Create a new dummy account for the sync adapter
*
* @param context The application context
*/
public static Account CreateSyncAccount(Context context) {
// Create the account type and default account
Account newAccount = new Account(
ACCOUNT, ACCOUNT_TYPE);
// Get an instance of the Android account manager
AccountManager accountManager =
(AccountManager) context.getSystemService(
ACCOUNT_SERVICE);
/*
* Add the account and account type, no password or user data
* If successful, return the Account object, otherwise report an error.
*/
if (accountManager.addAccountExplicitly(newAccount, null, null))) {
/*
* If you don't set android:syncable="true" in
* in your <provider> element in the manifest,
* then call context.setIsSyncable(account, AUTHORITY, 1)
* here.
*/
} else {
/*
* The account exists or some other error occurred. Log this, report it,
* or handle it internally.
*/
}
}
...
}