0

Я создал адаптер синхронизации учетной записи, чтобы показывать контакты из приложения в локальной контактной книге.onPerformSync вызвал эмулятор, но не физическое устройство

Существует поддельный автозапуск, который предоставляет учетную запись. от настроек в меню нажмите «Синхронизировать» -

enter image description here

Я попытался запустить 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?

ответ

0

Наконец я нашел причину этого вопроса:

onPerformSync метод никогда не будет вызываться до тех пор, пока вы не подключены к Интернету. На нескольких устройствах и эмуляторах было подключение к Интернету, но на других вы не можете запустить этот метод.