将Contacts和ContactsContract合并到Android应用程序中

时间:2010-11-14 16:13:35

标签: android contacts

问候所有人,

我意识到这个问题以前曾以其他形式提出过,并且相信我,我一直在网上寻找答案。但是,我对Android和Java相当新,我需要一些指导。

我目前有两个版本的应用程序,一个用于Android 1.5和1.6,另一个用于2.0及更高版本。正如您可能猜到的那样,这是因为Contacts API不同。

我最近意识到可以通过使用动态可加载的类将两种方法组合到一个应用程序中。很酷!经过几天的尝试,我仍然无法成功地做到这一点......或者至少,它不会运行。

我遇到过3个如何做到这一点的例子 - 一个是谷歌,名为“名片”,另一个是与Spinners有关,第三个是有人在这里创造的。我的问题是,在我看来每个人都有一个showstopper。

我在Windows 7上使用Eclipse。我的应用程序最初是为A1.5创建的,所以我正在升级。发生的事情是我的ContactsAccessorNewApi类需要导入ContactContracts,并且根据Eclipse,这将无法工作,因为我的项目最初是在没有支持的情况下构建的。因此,它不会运行。我已经尝试将SDK级别5的android.jar添加到项目中,但这会产生一大堆其他问题。

我的应用程序的代码与Google的“名片”示例完全相同 - 所以如果有人可以帮助我克服这个障碍,我将非常感激。我很乐意发布您回答我的问题所需的任何代码。

谢谢!

1 个答案:

答案 0 :(得分:2)

  

另一个与Spinners有关的事情

如果您的意思是this sample project,那就是我的。

  

我在Windows 7上使用Eclipse。我的应用程序最初是为A1.5创建的,所以我正在升级。发生的事情是我的ContactsAccessorNewApi类需要导入ContactContracts,并且根据Eclipse,这将无法工作,因为我的项目最初是在没有支持的情况下构建的。

您需要将构建目标(项目属性> Android)设置得足够高,ContactsContract存在(android-5或更高)。

只要您的清单中的android:minSdkVersion设置为支持Android的早期版本(例如,Android 1.5为3),您的应用仍将安装在较旧的仿真器AVD和设备上。

  

我尝试将SDK级别5的android.jar添加到项目中,但这会产生一大堆其他问题。

是的,不要这样做。