安卓ContentProvider的理论知识

2 篇文章 0 订阅
1 篇文章 0 订阅
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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值