我正在尝试开发一个应用程序,该应用程序仅使用ContentResolver.requestSync(account, authority, extras);
同步选定的帐户。
我可以使用com.android.contacts
和com.android.calendar
分别作为authority
同步联系人和日历。
但是,有没有办法得到一个特定帐户支持的权限列表?
另外,使用null
作为authority
有什么效果?
最佳答案
使用getSyncAdapterTypes()获取系统已知的SyncAdapters
信息。
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);
}
}
}
别忘了getIsSyncable()方法需要READ_SYNC_SETTINGS权限。