2012-07-26 9 views
9

Yalnızca seçilen hesapları ContentResolver.requestSync(account, authority, extras); kullanarak eşitleyen bir uygulama geliştirmeye çalışıyorum. Seçilen hesaplar için desteklenen yazarların listesi

I authority sırasıyla com.android.contacts ve com.android.calendar kullanarak senkronize temas ve takvim başardı.

Ancak, herhangi bir yolu almak için herhangi bir yolu var belirli bir hesap tarafından desteklenmektedir?

Ayrıca authority olarak null kullanmanın etkisi nedir?

cevap

4

Kullanım getSyncAdapterTypes() sisteme bilinmektedir SyncAdapters hakkında bilgi almak için. getIsSyncable() yöntemi unutma

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); 
     } 
    } 
} 

READ_SYNC_SETTINGS izin gerektirir.

+1

Thankz @biegleux .. çalışıyor, ancak e-postaları senkronize etme yetkisi vermiyor ... herhangi bir fikir? – JiTHiN