2012-02-20 121 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」 將給賬戶設備被鏈接到。

相關問題