2012-10-09 34 views

Respuesta

9

La sincronización ocurre automáticamente. Puede agregar o eliminar contactos programáticamente. Pero la sincronización la maneja el sistema operativo automáticamente si y solo si el usuario ha activado la opción 'sincronizar conos' en la configuración del teléfono.

Puede, sin embargo ejecutar una rutina de sincronización que se puede llamar el proceso de sincronización si la sincronización está habilitada por el usuario usando algo como esto:

private void requestSync() 
{ 
    AccountManager am = AccountManager.get(this); 
    Account[] accounts = am.getAccounts(); 

    for (Account account : accounts) 
    { 
     int isSyncable = ContentResolver.getIsSyncable(account, ContactsContract.AUTHORITY); 

     if (isSyncable > 0) 
     { 
      Bundle extras = new Bundle(); 
      extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); 
      ContentResolver.requestSync(accounts[0], ContactsContract.AUTHORITY, extras); 
     } 
    } 
} 
+0

También necesita agregar '' al manifiesto – maxivis

0

La siguiente también podría ser una buena respuesta. Su similar a la anterior, pero la configuración por defecto aplicación utiliza el código de algo como esto:

private void requestSyncForAccounts() { 
    SyncAdapterType[] syncAdapters = ContentResolver.getSyncAdapterTypes(); 
    Bundle extras = new Bundle(); 
    extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); 
    Account[] accounts = AccountManager.get(PeopleActivity.this).getAccounts(); 
    for (Account account : accounts) { 
     for (int j = 0; j < syncAdapters.length; j++) { 
      SyncAdapterType sa = syncAdapters[j]; 
      if (ContentResolver.getSyncAutomatically(account, sa.authority)) { 
       ContentResolver.requestSync(account, sa.authority, extras); 
      } 
     } 
    } 
} 
Cuestiones relacionadas