Я создал адаптер синхронизации учетной записи, чтобы показывать контакты из приложения в локальной контактной книге.onPerformSync вызвал эмулятор, но не физическое устройство
Существует поддельный автозапуск, который предоставляет учетную запись. от настроек в меню нажмите «Синхронизировать» -
Я попытался запустить onPerformSync системы: Также зарегистрированы
ContentResolver.setIsSyncable(account, ContactsContract.AUTHORITY, 1);
ContentResolver.setSyncAutomatically(account, ContactsContract.AUTHORITY, true);
Этого счет отображаются во всех счетах на устройстве синхронизируемое и программно:
public static void triggerRefresh() {
Bundle b = new Bundle();
b.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
b.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
Account account = AccountAuthenticatorService.GetAccount();
if (ContentResolver.isSyncPending(account, ContactsContract.AUTHORITY) ||
ContentResolver.isSyncActive(account, ContactsContract.AUTHORITY)) {
ContentResolver.cancelSync(account, ContactsContract.AUTHORITY);
}
ContentResolver.setIsSyncable(account, ContactsContract.AUTHORITY, 1);
ContentResolver.setSyncAutomatically(account, ContactsContract.AUTHORITY, true);
ContentResolver.requestSync(
account, // Sync account
ContactsContract.AUTHORITY,authority
b);
}
он отлично работает на эмуляторе, но на нескольких устройствах (Sony, Samsung) не срабатывает на всех (я пытался т o log smth в методе onPerformSync, но никогда не увидите этот журнал).
Я попытался найти такую проблему, но ничего не помогает, я не могу заставить силу onPerformSync вызываться.
Какое основное различие между эмулятором и устройством в соответствии с syncAdapter?