关于通讯录获取联系人信息以及联系人信息的存储结构,下面链接的博客的博主已经简单说明:
http://blog.csdn.net/snwrking/article/detail/7601794
----------------------------------------------------------------------------------------------------------------------------------
回归正题,我是用真机进行测试,首先先用数据线连接电脑。下面的文章只是我自己的一点小笔记,希望能够帮到有需要的朋友。(可能会有些啰嗦,但对于完全不会的人还是有点用的)。
一、首先先说一下代码吧,许多人也是因为无法写出代码而失去"活下去"信心:
首先我是在项目里面创建一个测试包:com.example.test 然后创建一个测试类test 里面有一个addPhoneContacts()方法用于写添加联系人信息的代码。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
小插曲:
你可以在DDMS下用File Explorer查看联系人信息的存储位置(data/data/com.android.provider.contacts/databases下面)具体怎么用,往下看就知道。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
由于以上代码在添加联系人的时候是一步一步的往表中添加数据,为了能够批量的添加数据,采用以下代码:
对于添加其他的信息,比如说邮箱,固话等等,接着往下写就行 。(针对刚学的朋友看不懂的问题,网上有很多类似的代码,以及一些讲解)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
二、代码的测试
ps:
<application
<uses-library android:name="android.test.runner"/></application>
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.telephone"></instrumentation>
在Manifest中加上上面两句代码,而且targetPackage必须与package相同,否则会报错。
在测试时,我们可以在java模式下Outline下点击方法名右键运行测试,测试结果对错我想都应该能看懂。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
三、数据查看
这时候,我们可以查看一下是否添加联系人成功。(当然手机通讯录上也能看到是否成功)。
在DDMS中File Explorer下导出contacts.db文件到某个地方,然后用SQLite Expert Personal工具打开文件:
打开后,我们发现表有很多,但是对于刚学的朋友,只要了解画红圈的三张表就可以了。
打开data表我们就能看见两位马老板的信息已经添加到通讯录中
四、代码中对于数据库的使用
1、 Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
uri = Uri.parse("content://com.android.contacts/data");
获取Uri ,数据所要存入表的路径。
put(“列名”,values);
put("mimetype", "vnd.android.cursor.item/name"); //可以在mimetypes表中查看
额。。有点累,先去睡个午觉,等有空再完善! 有错的希望有人告诉我 ,没错的话希望能帮到需要的朋友。