android权限管理
来源:互联网 发布:可以用淘宝贷的口子 编辑:程序博客网 时间:2024/06/10 20:38
不知道大家有没有做过这个权限管理,我们做了一下,发现小米和OPPO封装的好讨厌,目前发现只会弹出location的permission,而且当拒绝的时候,没有办法再次申请,因为你再次申请的时候,debug会直接跳到申请成功。如果有高手,可以留言说一下
参考博客:http://www.cnblogs.com/xmcx1995/p/5870191.html————原始方法
http://blog.csdn.net/u013243573/article/details/54426063————---7.0权限
https://github.com/tbruyelle/RxPermissionsrxpermission———-——github
http://www.cnblogs.com/whoislcj/p/6090795.html————————--rxpermission介绍
http://blog.csdn.net/lmj623565791/article/details/50709663————原始方法
我们用的是rxpermission,用法我就再重复一遍,上述有github和相关博客介绍
1、配置:
To use this library your minSdkVersion
must be >= 11.
repositories { jcenter() // If not already there}dependencies { compile 'com.tbruyelle.rxpermissions:rxpermissions:0.9.0@aar'}如果使用的RxJava2的话使用下面的配置与RxJava不同的是包名变成了com.tbruyelle.rxpermissions2
dependencies { compile 'com.tbruyelle.rxpermissions2:rxpermissions:0.8.2@aar'}2、直接申请权限使用
RxPermissions.getInstance(this) .request(permissions) .subscribe(new Action1<Boolean>() { @Override public void call(Boolean granted) { if (granted) { // 在android 6.0之前会默认返回true // 已经获取权限 String jpgPath = getCacheDir() + "test.jpg"; takePhotoByPath(jpgPath, 2); } else { // 未获取权限 Toast.makeText(MainActivity.this, "您没有授权该权限,请在设置中打开授权", Toast.LENGTH_SHORT).show(); } } });3、条件触发获取权限(结合RxBinding使用)
RxView.clicks(findViewById(R.id.request_permission)) .compose(RxPermissions.getInstance(this).ensure(Manifest.permission.CAMERA)) .subscribe(new Action1<Boolean>() { @Override public void call(Boolean granted) { if (granted) { // 在android 6.0之前会默认返回true // 已经获取权限 String jpgPath = getCacheDir() + "test.jpg"; takePhotoByPath(jpgPath, 2); } else { // 未获取权限 Toast.makeText(MainActivity.this, "您没有授权该权限,请在设置中打开授权", Toast.LENGTH_SHORT).show(); } } });4、同时请求多个权限(合并结果)
RxPermissions.getInstance(MainActivity.this).request(Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO) .subscribe(new Action1<Boolean>() { @Override public void call(Boolean granted) { if (granted) { // 在android 6.0之前会默认返回true // 已经获取权限 String jpgPath = getCacheDir() + "test.jpg"; takePhotoByPath(jpgPath, 2); } else { // 未获取权限 Toast.makeText(MainActivity.this, "您没有授权该权限,请在设置中打开授权", Toast.LENGTH_SHORT).show(); } } });
5、同时请求多个权限(分别获取结果)
RxPermissions.getInstance(MainActivity.this).requestEach(Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO) .subscribe(new Action1<Permission>() { @Override public void call(Permission permission) { if (permission.name.equals(Manifest.permission.CAMERA)) { if (permission.granted) { String jpgPath = getCacheDir() + "test.jpg"; takePhotoByPath(jpgPath, 2); } else { // 未获取权限 Toast.makeText(MainActivity.this, "您没有授权该权限,请在设置中打开授权", Toast.LENGTH_SHORT).show(); } } else if (permission.name.equals(Manifest.permission.RECORD_AUDIO)) { } } });
还是那句话,不知道怎么解决小米和OPPO的问题,写这个还是想如果有哪个大神看到,请指教
阅读全文
0 0
- android权限管理大全
- Android权限管理
- Android应用程序权限管理
- android权限管理
- Android 读取权限管理
- Android权限管理
- android 6.0权限管理
- Android 6.0权限管理
- Android 6.0权限管理
- android 6.0权限管理
- Android M权限管理
- 吐槽 Android 权限管理
- Android Studio权限管理
- Android 6.0 权限管理
- Android应用程序权限管理
- Android 6.0 权限管理
- Android 权限管理
- Android 6.0 权限管理
- Oracle:表名、字段名、constraint名的长度有限制
- Android USB Host与HID通讯
- linux 搜狗输入法问题
- 字典树(trie树)、后缀树
- C++中析构函数和构造函数
- android权限管理
- linux之cut用法
- hibernate5.0版本以后获取session操作数据库的过程
- 关于渲染顺序?
- 使用Django REST Framework来快速实现API调用服务——上篇(运行环境和模型层)
- strlen和sizeof的区别
- Spring MVC 原理解释
- 数据挖掘学习(三)
- 2.使用MFC的CSocket类建立简单的UDP通信