安卓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
相关文章推荐
- PHP内核探索:新垃圾回收机制说明
- getAttribute()与getParameter的区别
- php用空格代替标点符号
- PHP的文件加载机制到底是什么目录
- php传参方式1--ajax
- 访问wamp的PHPadmin时遇到Forbidden You don't have permission to access / on this server. You don't have per
- php 设计模式
- ThinkPHP实战之登录
- php Hash Table(二) Hash函数
- php基础------私有字段取值赋值
- php Hash Table(一) Hash Table的结构
- PHPExcel 读excel
- getParameter
- ViewPager及其适配器FragmentPagerAdapter
- 分享ThinkPHP3.2中关联查询解决思路
- PHP 手机号判断归属地
- PHP根据IP查找地区
- PHP && JS获取当前网址
- php中的static
- 求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路