16 Content Provider总结
第16天
Content Provider
一, 什么是Content Provider?
内容提供者 Android四大主件之一 :短信记录 通讯录 联系人 自定义
>Content Provider 所有程序间数据的存储和检索的桥梁 把各个程序里的数据共享
各个程序间 数据共享的唯一途径 (Android 没有提供一块独立的空间 将各个程序的数据共享
只能通过 内容提供者 共享数据)
二, 作用
将自己程序的私有数据 提供里一套对外的访问接口(增,删,改,查)
是基于Uri向外提供数据访问接口
使用:
Content Provider 提供私有数据
Uri:统一资源标识符 (路径)
ContentResolver:内容解析器
三,URI 统一资源标识符
格式:content://应用程序包名.provider/表名(一般情况)
四, 访问Content Provider 提供的数据
1,获取CntentResolver对象
2,通过CntentResolver对象 增删改查
五,联系人的数据库文件的位置
/data/data/com.android.providers.contacts/databases.contacts2.db
六,数据库中重要的几张表
主要包含三张表,contacts,raw_contacts,data
contacts表:contacts表中一条记录对应联系人列表中的一个联系人
(通过可能包含多个联系人的信息),此表不可直接插入联系人。
它是raw_contacts表记录的整合
raw_contacts表:未经处理的联系人,当插入一个联系人时,
系统会检测当前表中是否有存在相同号码、姓名的联系人,
根据用户设置是否聚合,将可以整合的记录指向同一个contact_id
data表:data表中的记录仅仅保存的是某一种类型的数据,
里面有一个地段mimetype_id,
用来关联mimetype表中的类型
,一个raw_contact一般会对应多条data记录
Uri:
// ContentResolver是通过uri来获取数据的,
// 电话号有电话号的uri
// 邮箱有邮箱的uri
// data有data的uri
// 这一系列uri是contentprovider自己定义的,我们只是调用
private static String uri_rawcontacts = “content://com.android.contacts/raw_contacts”;
private static String uri_contacts_phones = “content://com.android.contacts/data/phones”;
private static String uri_contacts_emails = “content://com.android.contacts/data/emails”;
private static String uri_contacts_data = “content://com.android.contacts/data”;
类型:
vnd.android.cursor.item/name
vnd.android.cursor.item/phone_v2
vnd.android.cursor.item/email_v2
附上URi地址图:
16 Content Provider总结的更多相关文章
- Android应用程序组件Content Provider在应用程序之间共享数据的原理分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6967204 在Android系统中,不同的应用 ...
- Android应用程序组件Content Provider的启动过程源代码分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6963418 通过前面的学习,我们知道在Andr ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences
除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider
ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...
- 我的Android 4 学习系列之数据库和Content Provider
目录 创建数据库和使用SQLite 使用Content Provider.Cusor和Content Value来存储.共享和使用应用程序数据 使用Cursor Loader异步查询Content P ...
- Android开发学习之路--Content Provider之初体验
天气说变就变,马上又变冷了,还好空气不错,阳光也不错,早起上班的车上的人也不多,公司来的同事和昨天一样一样的,可能明天会多一些吧,那就再来学习android吧.学了两个android的组件,这里学习下 ...
- (转)Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences
除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...
- Android Content Provider Security(转)
四大组件之一-content provider安全详解 原帖地址:http://drops.wooyun.org/tips/4314 0x00 科普 内容提供器用来存放和获取数据并使这些数据可以被所有 ...
- Android Content Provider Guides
Android Content Provider Guides Content Providers管理对结构化数据集的访问.它们包装数据,并且提供一种定义数据安全的机制. Content provid ...
随机推荐
- Prison 监狱
[题目描述]Caima 王国中有一个奇怪的监狱,这个监狱一共有 P 个牢房,这些牢房一字排开,第 i 个仅挨着第 i+1 个(最后一个除外).现在正好牢房是满的.上级下发了一个释放名单,要求每天释放名 ...
- 成也DP,败也DP(AFO?)
不知道想说什么.. 从来没写过博客,markdown什么的也不会,凑合着看一下吧. 初中的时候开始搞OI,学了两个月后普及组爆零就退赛了. 初三直升的时候说每个人都要选竞赛,抱着混一混的心态选了信息, ...
- 【BZOJ3991】【SDOI2015】寻宝游戏
Description 小B最近正在玩一个寻宝游戏,这个游戏的地图中有N个村庄和N-1条道路,并且任何两个村庄之间有且仅有一条路径可达.游戏开始时,玩家可以任意选择一个村庄,瞬间转移到这个村庄,然 ...
- ●洛谷P3687 [ZJOI2017]仙人掌
题链: https://www.luogu.org/problemnew/show/P3687题解: 计数DP,树形DP. (首先对于这个图来说,如果初始就不是仙人掌,那么就直接输出0) 然后由于本来 ...
- C++标准库之stack
C++库以提供"模板"为主.所谓模板,是指不必预先制定类型的函数或类.我们可以借助STL(标准模板库 Standard Template Library, STL)提供的高效算法来 ...
- 脱离文档流两操作,float和position:absolute的区别
文档流:将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,块状元素独占一行,内联元素不独占一行: CSS中脱离文档流,也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离 ...
- drool-6.5的自学demo
先丢代码地址 https://gitee.com/a247292980/drools 再丢pom.xml <project xmlns="http://maven.apache.org ...
- Apache软件基金会项目百度百科链接
Apache软件基金会 顶级项目 ▪ ActiveMQ ▪ Ant ▪ Apache HTTP Server ▪ APR ▪ Beehive ▪ Camel ▪ Cassandra ▪ Cayenne ...
- 安装Leanote极客范的云笔记
前言 在这个互联网知识呈爆炸增长的时代,作为一个程序员要掌握的知识越来越多,然再好的记性也不如烂笔头,有了笔记我们就是可以时常扒拉扒拉以前的知识,顺便可以整理下自己的知识体系. 如今市面上云笔记产品, ...
- 日历类和日期类转换 并发修改异常 泛型的好处 *各种排序 成员和局部变量 接口和抽象类 多态 new对象内存中的变化
day07 ==和equals的区别? ==用于比较两个数值 或者地址值是否相同. equals 用于比较两个对象的内容是否相同 String,StringBuffer.StringBuilde ...