2012-02-20 126 views
1

我需要从我的应用程序动态添加新联系人。 我使用AccountManager getAccounts方法列出了所有电话帐户,但是我获得了天气,股票等帐户。 如何获取仅联系人帐户?Android联系人帐户

回答

0

实际上没有什么好的方法可以通过使用API​​来实现,我们发现最准确的方法是回想:哪些帐户用于存储联系人?

这有点粗糙,但它提供了相当不错的结果(缓存列表,不需要每次都做)。

// Pseudo-code 
for contact in RawContacts 
    uniqueAccountTypes.put(contact.account) 
for accountType in uniqueAccountTypes 
    uniqueAccountsWithContacts.putAll(accountManager.getAccountsByType(accountType)) 

我没有访问联系人数据库的副本,现在,所以上面的代码可能会稍微偏离,但这个概念应该是清楚的。让我知道我是否应该进一步澄清。

+0

此方法不适用于所有情况。默认的联系人应用程序可以做到这一点,所以必须有其他方式。 – 2012-08-30 17:39:43

0

有类似的情况。

一个小的搜索后发现AccountManager的这种方法:

getAccountsByTypeAndFeatures(); 

在这里,如果你设置参数的功能为“service_mail”,“service_talk”等等,你会得到帐户支持电子邮件和聊天,因此这些帐户也会支持联系人。

UPDATE

“service_ah” 将给账户设备被链接到。

相关问题