Android——四大组件ContentProvider

Android

安卓开发者指南:https://developer.android.google.cn/guide
Android常用四大组件:
1.Activity
2.Service
3.Content provider
4.Broadcast receiver

Android四大组件——ContentProvider

(1)android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。

(2)只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。

(3)ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。

(4)开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。

(5)ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理。

来源:https://blog.csdn.net/ican87/article/details/21874321
这部分有个大概了解,之后再补充…

1 简介

为存储和获取数据提供统一的接口。可以在不同的应用程序之间共享数据。对于ContentProvider而言,无论数据的来源是什么,他都认为是种表,然后把数据组织成表格。

2 ContentProvider配置

1.自定义类继承ContentProvider,实现要求的方法;
2.在配置文件中通过provider标签配置,通过android:name属性指定待配置的类,通过android:authorities属性授权,指定当前内容提供者的uri标识,必须唯一。

2.1 ContentResolver类

内容处理者,该类提供了和ContentProvider中同名同参的增、删、改、查的方法,通过URI 采用对应的方法来操作ContentProvider提供的数据。
在这里插入图片描述
在这里插入图片描述

2.2 ContentProvider类

内容提供者,提供的方法:
创建:boolean onCreate(),可以进行数据库的创建
获取数据类型:String getType(Uri uri)
查询:Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
添加:Uri insert(Uri uri, ContentValues values)
更新:int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)
删除:int delete(Uri uri, String selection, String[] selectionArgs)

3 Uri的使用

URI 的解析

  1. UriMatcher:在ContentProvider创建时,制定好匹配规则,当调用了ContentProvider中的操作方法时,利用匹配类去匹配传的uri,根据不同的uri给出不同的处理。(UriMatcher还可以使用匹配通配符来匹配任意不确定的值)
  2. Uri 自带的解析方法
3.1 UriMatcher

制定好匹配规则
UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH); //代表无法匹配
matcher.addURI(“com.lxy.myprovider”,“hellowrld”,1000);
matcher.addURI(“com.lxy.myprovider”,“hellowrld/abc”,1001);
matcher.addURI(“com.lxy.myprovider”,“hellowrld/#”,1002); //任意数字
matcher.addURI(“com.lxy.myprovider”,“hellowrld/*”,1003); //任意字符
消息提供者:

在这里插入图片描述
消息处理者:

3.2 Uri自带的方法

消息提供者:

消息处理者:

4 数据读取

访问手机短信,联系人
Cursor可以想象成一张表

4.1 读短消息

在这里插入图片描述
只关注想要的列的话:

content://sms 短信箱
content://sms/inbox 收件箱
content://sms/sent 发件箱
content://sms/draft 草稿箱

注意要给权限:< uses-permission android:name=“android.permission.READ_SMS”/>

4.2 读联系人

注意要给权限:< uses-permission android:name=“android.permission.READ_CONTACTS”/>
在这里插入图片描述

4.3 添加联系人

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值