ContentProvider 的使用
- ContentProvider 的介绍和使用
ContentProvider介绍
ContentProvider项目中应用
ContentProvider机制 - 进程内数据共享
自定义ContentProvider - 进程间数据共享
进程间ContentProvider增删改查 - 自定义权限
权限是什么
自定义权限使用
ContentProvider 的介绍和使用
导入注解的包
implementation ‘androidx.annotation:annotation:+’
ContentProvider介绍
1.ContentProvider内容提供者(四大组件之一)主要用于在不同的应用程序之间实现数据共享的功能。
2.技能get点:
(1)访问系统自带的内容提供者(******)
手机联系人/音频/视频/图库/短信/系统设置
(2)自己写内容提供者
3.三个重点
(1) contentProvider 内容提供者
(2) contentResolve 内容解析者
(3) uri 地址
可以简单的理解为:
内容提供者提供一个地址,内容解析者把uri解析一下,去指向提供者的地址.
自定义ContentProvider
一,什么是自定义内容提供者
谈到内容提供者,大家就应该想到提供方和索要方,现在,我们想要做提供方,别人来访问我们的数据库,那我们就需要自定义内容提供者了。
二.思路
1.提供方:ContentProvider
(1)创建数据库,自定义类继承SQLiteOpenHelper
(2)自定义内容提供者类,继承ContentProvider,重写insert/delete/update/query方法,向外界提供方法
(3)清单文件中注册内容提供者
2.索要方:ContentResolver
(1)通过Context的getContentResolver方法获得ContentResolver对象
(2)确定uri
(3)调用insert/delete/update/query方法访问数据库
三.提供者代码:创建my_contentprovider (新建的moudle)
(1)自定义类继承SQLiteOpenHelper
(2)自定义内容提供者类,继承ContentProvider
重写其他的方法
(3)清单文件中注册内容提供者
四.内容索要方代码
(1)获取ContentResolver直接获取
进程间数据共享
进程间ContentProvider增删改查
自定义权限
权限是用于暴露出去的组件,提高安全性
自定义权限使用
(1)内容提供方的清单文件
(2)内容解析方清单文件添加权限