我正在尝试开发一个应用程序,该应用程序仅使用ContentResolver.requestSync(account, authority, extras);同步选定的帐户。
我可以使用com.android.contactscom.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权限。

07-26 05:10