总所周知,Android 6.0以上的版本,google对权限做了更严格的限制,不能app自动给权限,必须要让用户选择是否给权限。如果,用户不给权限,辣么,用这个功能的时候,app会造成崩溃,所以,最简单的办法就是,用户不给权限,不让用户用这个功能,也就是页面不做跳转。
当时,刚出来这个权限问题的时候,本人用原生的写,写了封装,搞了好长时间,总感觉各种不爽,各种不舒服,后来好了,大牛封装了一个开源框架——RxPermission,一行代码解决动态申请权限问题。
依赖
1 | implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar' |
工具类
1 | package com.haichenyi.myproject.utils |
调用
1 | RxPerUtils.requestPermission(this, Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE) { |
请求权限的整个过程就是:
- 用RxPermission去请求权限,需要传activity对象,然后就是你需要获取的权限(可以传多个),再就是回调方法
- 在回调方法里面做判断,用户是否给了权限,如果给了,就走你正常的逻辑。如果没有给,就弹对话框提示用户,去设置页面给权限。
就这么简单,方法都封装好了,如果,你嫌弃系统自带的对话框样式不好看,你也可以自己写一个样式。项目就不传了,如果你有之前的代码,就直接把我这几个方法拷贝过去用就可以了,没有之前的代码,就去瞅瞅之前的博客吧。