Я продолжаю получать множество уведомлений по этому вопросу, поэтому я решил поделиться этой информацией. Вот как вы можете добавить SyncAdapter без учетной записи. Вы можете поместить это в onCreate
из MyApplication extends Application
класса. Это предполагает, что вы уже внедрили SyncAdapter
и ContentProvider
. Вы можете сделать это, следуя инструкциям, перечисленным в вопросе.
final String ACCOUNT_NAME = "MyApp";
final String ACCOUNT_TYPE = "com.myapp.account";
final String PROVIDER = "com.myapp.provider";
Account appAccount = new Account(ACCOUNT_NAME,ACCOUNT_TYPE);
AccountManager accountManager = AccountManager.get(getApplicationContext());
if (accountManager.addAccountExplicitly(appAccount, null, null)) {
ContentResolver.setIsSyncable(appAccount, PROVIDER, 1);
ContentResolver.setMasterSyncAutomatically(true);
ContentResolver.setSyncAutomatically(appAccount, PROVIDER, true);
}
Рез / XML / syncadapter.xml
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="@string/provider"
android:accountType="@string/account_type"
android:userVisible="true"
android:supportsUploading="true"
/>
Рез / XML / authenticator.xml
<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
android:accountType="@string/account_type"
android:icon="@drawable/app_icon"
android:smallIcon="@drawable/app_icon"
android:label="@string/app_label"
/>