Android 申请权限结果返回处理
1、方法一
private static final int PERMISSION_REQUEST_CODE = 1;private String[] mPermissions = {Manifest.permission.CAMERA};/*** 申请权限结果返回处理*/@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);Log.i("lgq","onRequestPermissionsResult ....."+requestCode);if (requestCode == PERMISSION_REQUEST_CODE) {boolean isAllGranted = true;for (int grant : grantResults) { // 判断是否所有的权限都已经授予了Log.i("lgq","申请权限结果===="+grant);if (grant != PackageManager.PERMISSION_GRANTED) {isAllGranted = false;break;}}if (isAllGranted) { // 所有的权限都授予了
// startCamera();Log.i("lgq","同样同意kaiqil ..onRequestPermissionsResult...");} else {// 提示需要权限的原因Log.i("lgq","同样反对kaiqil ..onRequestPermissionsResult...");AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setMessage("拍照需要允许权限, 是否再次开启?反对").setTitle("提示").setPositiveButton("确认", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {ActivityCompat.requestPermissions(MainActivity.this, mPermissions, PERMISSION_REQUEST_CODE);}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();finish();}});builder.create().show();}}}
当第一次点击禁止时:
2、方法二
1、添加依赖
//RxPermission权限申请
implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar'
//RxBinding
implementation 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
2、申请权限,处理申请结果
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>
/*** 所有需要的权限类型*/
private static final String[] PERMISSIONS = {Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA};
/*** 动态获取权限*/
public void getPermission() {RxPermissions rxPermissions = new RxPermissions(MainActivity.this);rxPermissions.request(PERMISSIONS).subscribe(new Consumer<Boolean>() {@Overridepublic void accept(Boolean granted) throws Exception {if(granted){//权限申请成功Toast.makeText(MainActivity.this,"cg",Toast.LENGTH_SHORT).show();}else{//权限申请不成功,弹窗提示退出Toast.makeText(MainActivity.this,"cg222",Toast.LENGTH_SHORT).show();}}});
}
进阶方法:
implementation 'com.yanzhenjie:permission:1.1.2'
public void checkPermission(){//先判断是否有相机权限AndPermission.with(this).requestCode(100).permission(Permission.CAMERA).callback(listener).rationale(mRationaleListener).start(); }//用户拒绝一次权限后,再次申请时检测到已经申请过一次该权限了,允许开发者弹窗说明申请权限的目的,获取用户的同意后再申请权限,避免用户勾选不再提示,导致不能再次申请权限 private RationaleListener mRationaleListener = new RationaleListener() {@Overridepublic void showRequestPermissionRationale(int requestCode, final Rationale rationale) {if(100==requestCode){Log.i("lgq","拒绝了。。。");}} };//相机权限监听 PermissionListener listener = new PermissionListener() {@Overridepublic void onSucceed(int requestCode, @NonNull List<String> grantPermissions) {if(100==requestCode){//打开摄像头Log.i("lgq","同意了了。。。");}}@Overridepublic void onFailed(int requestCode, @NonNull List<String> deniedPermissions) {if(100==requestCode){//相机AndPermission.defaultSettingDialog(MainActivity.this, 100).setTitle("权限申请失败").setMessage("需相机基本权限,否则您将无法正常使用,请在设置中授权").setPositiveButton("好,去设置").setNegativeButton("", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {return;}}).show();}} };
Android 申请权限结果返回处理相关推荐
- android申请权限一次性申请多个,android 6.0以上动态一次申请多个权限-最美解决方案...
目录 背景 危险权限 申请权限思路 申请权限流程 干货 后续 一.背景 android23 API新增危险权限校验,需要手动获取: 二.危险权限: 日历数据 android.permission-gr ...
- Android 申请权限前简单封装弹框阐述申请理由工具类,应付app合规检查
近段时间浏览新闻经常会看到工信部通报某某app合规检查不合格,拒不整改,勒令全部下架这些信息,尤其是金融类app.个人信息的保护对用户确实是非常重要的,相信绝大多数行业工作者也感觉到了这些年国家对互联 ...
- android申请权限一次性申请多个,Android 批量申请权限
Android开发时,到6.0系统上之后,有的权限就得申请才能用了. Android将权限分为正常权限 和 危险权限 详细可参考: (https://www.cnblogs.com/liuzhipen ...
- android申请权限一次性申请多个,Android适配6.0动态申请权限,多权限同时申请
哈哈,现在写适配6.0好像有点马后炮的感觉,不过以前确实没有注意到这些问题.前几天在添加高德地图定位功能的时候发现在Android 6.0系统上有很多的权限需要进行动态申请. 下面先来看一下在Andr ...
- 93.Android申请权限
权限组列表: https://blog.csdn.net/lanxuan1993/article/details/102954531 一.RxPermissions https://blog.csdn ...
- 【Android 应用开发】动态权限管理示例 ( 使用原生代码实现 | 申请权限 | 判定权限申请结果 | 判定 “ 不再询问 “ 情况 )
文章目录 一.申请权限 二.判定权限申请结果 三.判定 " 不再询问 " 情况 四.完整代码示例 1.权限管理代码 2.主界面代码 3.执行结果 五.博客资源 一.申请权限 首先 ...
- 【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )
文章目录 一.申请权限 二.申请权限原理对话框 三.引导用户手动设置权限对话框 四.在 AndroidManifest.xml 中配置权限 五.完整代码示例 六.GitHub 地址 一.申请权限 申请 ...
- Android动态权限申请
从Android 6.0开始,权限不再是在manifest文件中粘贴一下即可,这时候权限也正式走进大家的视野.项目的6.0适配就是我做的,当时没有仔细总结,最近在另一个项目添加权限的时候发现,同一个功 ...
- Android PermissionUtils:运行时权限工具类及申请权限的正确姿势
Android PermissionUtils:运行时权限工具类及申请权限的正确姿势 ifadai 关注 2017.06.16 16:22* 字数 318 阅读 3637评论 1喜欢 6 Permis ...
最新文章
- python操作neo4j
- 这款IDEA插件,可以让你用中文编码哟
- 割点、割边(桥) tarjan
- webpack常用配置
- EAGER的获取是代码的味道
- 病毒的手工排除与分析(更新完毕)
- 运维监控软件 wgcloud 更新,v3.2.7 重构告警模块
- SLAM--搭建自己的视觉里程计VO-RGBD相机(一)
- 计算机网络基础 — Bypass 网卡
- latex编译pdf winedt_XeLaTeX及WinEdt6.0入门指南资料.pdf
- pl/sql如何使用
- 2023秋招--广州光娱--游戏客户端--面经
- 换号码的烦恼引起的思考
- 手机触屏特效Java_手机触屏触摸特效javascript-TouchSwipe(依赖于jquery库)中文说明...
- eos 区块链 java 开发_EOS区块链用什么语言开发?
- 服务器客户端证书,客户端如何验证HTTPS服务端证书信息
- 【日常训练】Help Far Away Kingdom(Codeforces 99A)
- matlab并行计算 parfor
- 怎么创建小程序?如何创建一个小程序呢?
- C语言版--单链表排序,冒泡排序,选择排序,插入排序,快速排序,应有尽有,保证看懂,没有bug!交换节点版本!