我使用旧的Contacts API,而不是ContactsContract,因为向后兼容1.x系列.但是当在2.x上显示我的应用程序时,联系人列表不完整.在某些设备中,它显示为空,在某些设备中,它仅显示设备中的某些联系人.
我知道在2.x系列上使用Contacts API它只显示主要帐户联系人,但事实并非如此.看起来只是最近才显示更新的联系人,但情况并非如此.
所以问题是:如何正确实现2.x和1.x android版本的联系人列表?
提前致谢
But when displaying my app on 2.x the
contact list is not complete. In some
devices it’s shown as empty, and in
some devices it only displays some of
the contacts in the device.
正确.旧的Contacts API仅访问仅存储在设备上的联系人,而不是通过其他提供商同步获得的联系人. Android 2.0也存在一个错误,你甚至没有得到本地存储的联系人,尽管这是通过Android 2.0.1 IIRC修复的.
So the question is: How to correctly
implement contact list for both 2.x
and 1.x android version?
对于针对特定版本的次要更改(例如,您只需要正确的Uri),您可以使用反射,如this sample project所示.
如果您的需求更复杂,您可以通过创建一个接口(或抽象基类)和两个实现(每个API级别一个,并且只使用正确的一个)来利用条件类加载.这在this sample project中得到证明.