有没有办法确定从AccountManager返回的帐户是否支持联系人或日历事件?
我看到有一种名为AccountManagerFeature的东西,但我没有看到使用它的一般方法。
简而言之,我想要的是在创建新活动或新联系人时向用户显示帐户列表。该列表应仅显示有效存储事件和联系人的帐户。
答案 0 :(得分:0)
我按照这个答案做了这个: What features are supported by Android's Google accounts authenticator?
不知道代码是如何更新的,但您需要的代码正在运行。
private static final String ACCOUNT_TYPE_GOOGLE = "com.google";
private static final String[] FEATURES = { "service_mail","service_cl","service_sitemaps" };
private void testGetAccountsByTypeAndFeatures() {
AccountManagerFuture<Account[]> accounts = AccountManager.get(this).getAccountsByTypeAndFeatures(ACCOUNT_TYPE_GOOGLE, FEATURES, new AccountManagerCallback<Account[]>() {
@Override
public void run(AccountManagerFuture<Account[]> future) {
try {
for (Account account : future.getResult()) {
Log.d("ACCOUNT",account.toString());
}
} catch (OperationCanceledException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (AuthenticatorException e) {
e.printStackTrace();
}
}
}, null);
}
不要忘记添加权限
<uses-permission android:name="android.permission.GET_ACCOUNTS" />