您的位置:首页 > 编程语言 > PHP开发

安卓ContentProvider的理论知识

2015-09-20 18:08 676 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: