2012-07-26 13 views
9

Estoy tratando de desarrollar una aplicación que sincronice solo cuentas seleccionadas usando ContentResolver.requestSync(account, authority, extras);.Lista de las autorizaciones admitidas para cuentas seleccionadas

I fue capaz de sincronización contactos y calendario utilizando com.android.contacts y com.android.calendar respectivamente como authority.

Pero, ¿hay alguna manera de obtener la lista de las autoridades compatibles con una cuenta específica?

Además, ¿cuál es el efecto de usar null como authority?

Respuesta

4

Utilice getSyncAdapterTypes() para obtener información sobre el SyncAdapters que son conocidos por el sistema.

SyncAdapterType[] types = ContentResolver.getSyncAdapterTypes(); 
for (SyncAdapterType type : types) { 
    if (yourAccount.type.equals(type.accountType)) { 
     boolean isSyncable = ContentResolver.getIsSyncable(yourAccount, type.authority) > 0; 
     if (isSyncable) { 
      ContentResolver.requestSync(yourAccount, type.authority, extras); 
     } 
    } 
} 

No se olvide getIsSyncable() método requiere READ_SYNC_SETTINGS permiso.

+1

Thankz @biegleux ... está funcionando ... pero, no está dando la autoridad para sincronizar los correos electrónicos ... ¿alguna idea? – JiTHiN

Cuestiones relacionadas