0
有没有方法可以确定从AccountManager返回的帐户是否支持联系人或日历事件?如何判断AccountManager帐户是否支持联系人
我看到有一种叫AccountManagerFeature的东西,但我没有看到使用它的一般方法。
总之,我想要的是在创建新事件或新联系人时向用户呈现帐户列表。该列表应仅显示分别适用于存储事件和联系人的帐户。
有没有方法可以确定从AccountManager返回的帐户是否支持联系人或日历事件?如何判断AccountManager帐户是否支持联系人
我看到有一种叫AccountManagerFeature的东西,但我没有看到使用它的一般方法。
总之,我想要的是在创建新事件或新联系人时向用户呈现帐户列表。该列表应仅显示分别适用于存储事件和联系人的帐户。
我已经这样做了以下这样的回答: 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" />
看来,这只会工作的谷歌帐户。其他类型的账户如Facebook呢?他们可以使用自己的特征字符串,正确吗? –
是的,他们会使用自己的字符串,因为他们可以拥有自己的功能。我找不到其他文件,对不起。 – isma3l