如何判断AccountManager帐户是否支持联系人

时间:2015-06-23 18:56:17

标签: android accountmanager

有没有办法确定从AccountManager返回的帐户是否支持联系人或日历事件?

我看到有一种名为AccountManagerFeature的东西,但我没有看到使用它的一般方法。

简而言之,我想要的是在创建新活动或新联系人时向用户显示帐户列表。该列表应仅显示有效存储事件和联系人的帐户。

1 个答案:

答案 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" />