2010-02-22 19 views
3

Mi問題是我需要在我的應用程序中實現聯繫人列表Android 1.5,1.6和2.x.如何同時使用Android 1.x和2.x的聯繫人API?

我使用舊的Contacts API而不是ContactsContract,因爲它與1.x系列向後兼容。但是,在2.x上顯示我的應用程序時,聯繫人列表不完整。在某些設備中,它顯示爲空白,並且在某些設備中,它只顯示設備中的一些聯繫人。

我知道在2.x系列上使用Contacts API只會顯示主要帳戶聯繫人,但事實並非如此。它看起來只顯示最近更新的聯繫人,但情況並非如此。

所以問題是:如何正確實現2.x和1.x版本的聯繫人列表?

在此先感謝

回答

7

但在2.X顯示我的應用程序時, 聯繫人列表是不完整的。在某些 設備中,它顯示爲空,並且在某些設備中,它只顯示設備中某些聯繫人。

正確的。舊的Contacts API只能訪問單獨存儲在設備上的聯繫人,而不是通過從其他提供商同步獲取的聯繫人。 Android 2.0還存在一個問題,您甚至無法獲得本地存儲的聯繫人,但Android 2.0.1 IIRC修復了這個問題。

所以現在的問題是:如何正確 實現聯繫人列表兩種2.X 和1.x的Android版本?

對於在this sample project所示次要特定版本的改變(例如,你只需要正確Uri),你可以使用反射。

如果您的需求比較複雜,您可以通過創建一個接口(或抽象基類)和兩個實現(每個API級別一個),並且只使用正確的接口來利用條件類加載。這在this sample project中得到證明。

+0

感謝這兩個答案,我會檢查並更新完成後! – licorna 2010-02-22 16:37:18

相關問題