26
2017
09

内容提供器总结

内容提供器主要用于在不同应用程序之间实现数据共享的功能,内容提供器允许一个应用程序访问另一个程序的数据,是android中实现跨程序共享数据的标准方式。优点:因为这种共享方式是共享程序中一部分数据,所以保证了这种共享数据方式提供了程序内数据的安全性。
知识点
1.运行时权限
以前需要什么手机权限只需要在清单文件中申请一下就可以了,但是android6.0以后为了保护用户的安全和隐私对一些比较敏感的特殊权限进行了保护机制,需要运行的过程中动态去申请。(大概有9组,24个危险权限)
申请流程
a.配置清单文件先申请需要的权限
b.代码中通过判断是否已经有该权限
if(ContextCompat.checkSelfPermission(this,权限)!=PackageManage.PERMISSION_GRANTED)
再申请
ActivityCompat.requestPermission()
否则之间运行
d.需要重写onRequestPermissionResult来判断是否申请到权限

2.基本使用
内容提供器中操作数据不是通过数据表名而是通过Uri对象来操作的
Uri(统一资源标识) = 协议声明(Content:)+authority(区分不同程序)+path(区分同一个程序不同的表)
a.访问其他程序的数据
如果没有访问其他程序数据的权限需要动态区申请并在清单文件注册
cursor= getContentResolver().query(uri,null,null,null,null)
if(cursor=!null)
while(cursor.moveToNext()){
cursor.getString(cursor.getColumnIndex(要获取的程序数据))
}
cursor.colse()
b.创建内容提供者提供数据给其他程序
写一个内容提供器的类继承ContentProvider,ContentProvider是一个抽象类,所以需要实现其中的6个方法
boolean onCreate
Cursor query
Uri insert
int upDate
int delete
String getType

上一篇:新建Maven项目流程表 下一篇:View和输入法的通信原理