gpt4 book ai didi

android - 如何检查android中的同步设置

转载 作者:太空狗 更新时间:2023-10-29 12:54:39 25 4
gpt4 key购买 nike

我正在构建一个 Android 应用程序,我需要检查设备中注册的每个帐户的同步设置。我知道我可以通过 ContentResolver 类来完成,但我遇到了一些问题。我已经设法获取了设备上所有帐户的列表,但我不知道在运行时从哪里获取特定帐户的相关权限。下面是代码:

AccountManager acm = AccountManager.get(getApplicationContext());
Account[] acct = acm.getAccounts();
for(int i=0;i<acct.length;i++){
int p = ContentResolver.getIsSyncable(acct[i], null);
Log.i(TAG,"account name is"+acct[i].name);
Log.i(TAG,"answer to syncable is: "+String.valueOf(p));

getIsSyncable(Account am,String authority) 请求一个帐户和一个权限。如您所见,我传递的是 NULL 而不是实际权限。有谁知道我可以找到相关帐户权限的方法吗?

最佳答案

您可以检索已知的 SyncAdapter,然后查询 ContentResolver

AccountManager acm
= AccountManager.get(getApplicationContext());
Account[] acct = null;

SyncAdapterType[] types = ContentResolver.getSyncAdapterTypes();
for (SyncAdapterType type : types) {
Log.d(TAG, "--------------------");
Log.d(TAG, type.authority + "--" + type.accountType);
acct = acm.getAccountsByType(type.accountType);
for (int i = 0; i < acct.length; i++) {
int p = ContentResolver.getIsSyncable(acct[i], type.authority);
Log.i(TAG, "account name: " + acct[i].name);
Log.i(TAG, "syncable: " + String.valueOf(p));
}
}

输出:

11-15 17:12:51.899:调试/同步样本(4572): com.google.android.music.MusicContent--com.google 11-15 17:12:51.899:

INFO/syncsample(4572): 账户名:xxxxxxxxx@gmail.com 11-15 17:12:51.899: INFO/syncsample(4572): 可同步: 1 11-15 17:12:51.899:

INFO/syncsample(4572): 账户名:xxxxxx@google.com 11-15 17:12:51.899: INFO/syncsample(4572): 可同步: 0

关于android - 如何检查android中的同步设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8135447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com