1,读取联系人信息:
2,联系人的数据库文件的位置
/data/data/com.android.providers.contacts/databases.contacts2.db
3,数据库中重要的几张表
1、contacts表
该表保存了所有的手机联系人,每个联系人占一行,该表保存了联系人的
ContactID、联系次数、最后一次联系的时间、是否含有号码、是否被添加
到收藏夹等信息。
2、raw_contacts表
该表保存了所有创建过的手机联系人,每个联系人占一行,表里有一列标
识该联系人是否被删除,该表保存了两个ID:RawContactID和ContactID,
从而将contacts表和raw_contacts表联系起来。该表保存了联系人的
RawContactID、ContactID、联系次数、最后一次联系的时间、是否被添
加到收藏夹、显示的名字、用于排序的汉语拼音等信息。
3、 mimetypes
该表定义了所有的MimeTypeID,即联系人的各个字段的唯一标志。
4、data表
该表保存了所有创建过的手机测联系人的所有信息,每个字段占一行 ,该表
保存了两个ID:MimeTypeID和RawContactID,从而将data表和
raw_contacts表联系起来。
4,读取联系人步骤:
>1.布局listVIew
>2.得到contentResolver对象,通过getContentResolver得到
>3.得到数据 怎么得到数据?联系人的Uri
/**
* 演示通过conentresolver访问系统的联系人
*
* ContactsContract.Contacts.CONTENT_URI 管理联系人的Uri
content://com.android.contacts/raw_contacts
*ContactsContract.CommonDataKinds.Phone.CONTENT_URI
管理联系人的电话的Uri content://com.android.contacts/data/phones
*ContactsContract.CommonDataKinds.Email.CONTENT_URI
管理联系人的Email的Uri content://com.android.contacts/data/emails
* android.provider.ContactsContract.Data.CONTENT_URI
插入联系人 content://com.android.contacts/data
*/
>4,添加数据
>5,修改数据
>6,删除数据
android.provider.ContactsContract.Data.CONTENT_URI;//操作联系人的uri对象 ,增删改
content://com.android.contacts/data
1,ContentProvider
>一个程序可以通过实现一个ContentProvider的抽象接口将自己的数据暴露出去
2,ContentResover
> 外界的程序通过ContentResolver接口可以访问ContentProvider提供的数据;
3,Uri
>Uri是ContentResolver和ContentProvider进行数据交换的标识。
3,读取短信
4,读取电话记录
5,读取联系人
自定义的ContentProvider
1,如何创建自定义的ContentProvider?
服务端:
>1.设置数据库
create table person(_id integer primary key autoincrement,name varchar(16),age integer)
>2.自定义的ContentProvider类
a.需要暴露数据访问接口的应用程序需要声明contentProvider的子类
query() insert() update() delete() getType() onCreate()
contentUri
UriMatcher uriMatcher=new UriMatcher(UriMatcher.NO_MATCH);
static{
uriMatcher.addUri("权限(包名)","路径",client传递的uri匹配成功的code);
}
b.将contentProvider在清单配置文件中注册
<application>
<provider android:name="contentProvider的包名.类名"
android:authorities="addUri第一个参数指定的权限一致"
android:exported="true">
</provider>
</application>
客户端:
1,listview
2,数据源 ContentResovler
3,Uri (增删改查)
content://包名+类名/insert/zhangsan