Android内容提供器
2018-02-15 16:24
239 查看
需要别的应用的数据时,需要获得权限因为有一些涉及到用户的隐私性,而android6.0以后就有运行时权限的功能了
1.在AndroidManifest.xml文件中添加权限,在安装时会讯问用户是否同意。一些普通的权限系统会自动同意,而一些危险的就需要用户授权了,以下是危险的权限
2.运行时权限
首先我们用ContextCompat.checkSelfPermission()来判断,用户是否已经给我们授权,他接受两个参数,第一个是Context,而第二个是具体的权限名,比如Manifest.permission.CALL_PHONE,返回值与PackageManager.PERMISSION_GRANTED做比较,相同就说明用户已经授权了,
如果授权了,使用Intent完成你想要的操作就可以了,如果没有授权,那么我们使用ActivityCompat.requestPermissions来向用户申请权限,他接受三个参数,一个是Activity的实例,另一个是String数组,把要申请的权限给他,第三个就是请求码
当询问完用户会回调onRequestPermissionResult(),我们需要判断他是否同意了,同意了我们就直接进行我们要得操作,不然就告诉用户他拒绝了
申请权限的事我们做完了,我们下面就进入正题,访问其他程序的内容
如果想要访问内容提供器中共享的数据,那么就要借助ContentResolver类,
使用getContentResolver方法获取到该类的实例,而他的CRUD操作,和数据库类似,insert方法用于添加数据,upodate更新,delete删除,query查询
而和数据库不同的是,药房问那个内容使用的是URI
然后我们将它解析成Uri对象
有了uri我们就需要进行查询
有时候我们还需要自己的应用程序提供内容
我们可以借助UriMatcher这个类,通过addURI方法将我们可以识别的的Uri添加进去,他接受三个参数第一个是authority,第二个是path,第三个是自己定义的代码,这样子当调用match时我们,我们会得到自己定义的代码,这样子就可知道想对我们的内容提供器做什么操作
然后在相对应的类中把方法完善即可
1.在AndroidManifest.xml文件中添加权限,在安装时会讯问用户是否同意。一些普通的权限系统会自动同意,而一些危险的就需要用户授权了,以下是危险的权限
2.运行时权限
首先我们用ContextCompat.checkSelfPermission()来判断,用户是否已经给我们授权,他接受两个参数,第一个是Context,而第二个是具体的权限名,比如Manifest.permission.CALL_PHONE,返回值与PackageManager.PERMISSION_GRANTED做比较,相同就说明用户已经授权了,
如果授权了,使用Intent完成你想要的操作就可以了,如果没有授权,那么我们使用ActivityCompat.requestPermissions来向用户申请权限,他接受三个参数,一个是Activity的实例,另一个是String数组,把要申请的权限给他,第三个就是请求码
当询问完用户会回调onRequestPermissionResult(),我们需要判断他是否同意了,同意了我们就直接进行我们要得操作,不然就告诉用户他拒绝了
申请权限的事我们做完了,我们下面就进入正题,访问其他程序的内容
如果想要访问内容提供器中共享的数据,那么就要借助ContentResolver类,
使用getContentResolver方法获取到该类的实例,而他的CRUD操作,和数据库类似,insert方法用于添加数据,upodate更新,delete删除,query查询
而和数据库不同的是,药房问那个内容使用的是URI
然后我们将它解析成Uri对象
Uri uri = Uri.parse("content://com.example.app.provider/table1");
有了uri我们就需要进行查询
Cusor cursor = getContentResolver().query( uri, projection, selection, selectionArgs, sortOrder);
有时候我们还需要自己的应用程序提供内容
我们可以借助UriMatcher这个类,通过addURI方法将我们可以识别的的Uri添加进去,他接受三个参数第一个是authority,第二个是path,第三个是自己定义的代码,这样子当调用match时我们,我们会得到自己定义的代码,这样子就可知道想对我们的内容提供器做什么操作
然后在相对应的类中把方法完善即可
相关文章推荐
- Android 内容提供器---创建内容提供器(实现ContentProvider的MIME类型)
- android: 内容提供器简介
- Android组件系列----ContentProvider内容提供者【4】
- Android学习总结(九)———— 内容提供器(ContentProvider)
- Android组件----内容提供器Content Provider
- android开发之内容提供器
- Android 内容提供器---创建内容提供器(概要)
- 系出名门Android(9) - 数据库支持(SQLite), 内容提供器(ContentProvider)
- Android 之创建内容提供程序
- Android编程之创建自己的内容提供器实现方法
- android 内容提供者 系统通讯录
- Android 内容提供器---创建内容提供器(实现ContentProvider类)
- Android基础学习之Provider(内容提供器)
- Android跨程序共享数据,探究内容提供器
- Android 内容提供器---创建内容提供器(实现合约类)
- Android 内容提供器 ContentProvider
- Android之 内容提供器(1)——使用内容提供器访问其它程序共享的数据
- 系出名门Android(9) - 数据库支持(SQLite), 内容提供器(ContentProvider)
- android: 创建自己的内容提供器
- Android开发指南-框架主题-内容提供器