安卓权限管理
来源:互联网 发布:淘宝网棉麻连衣裙 编辑:程序博客网 时间:2024/06/07 01:11
写在基类中,安卓6.0以上权限请求管理,没有做版本判断,直接做判断请求
/** * 权限请求成功回调 * @param perissions 请求成功的权限集合 */ public void perissionRequestSuccessCallback(String perissions[]){ } /** * 权限请求失败回调 * @param perissions 请求失败的权限集合 */ public void perissionRequestFailCallback(String perissions[]){ } private final int permissionsRequestCode = 0; public void perissionRequest(String permissions[]){ List<String> noPermissions = new ArrayList<>(); for(int i = 0 ; i < permissions.length ; i++){ if (ContextCompat.checkSelfPermission(context, permissions[i]) != PackageManager.PERMISSION_GRANTED) { noPermissions.add(permissions[i]); } } if(noPermissions.size() != 0){ String[] strings = new String[noPermissions.size()]; for(int i = 0 ; i < noPermissions.size() ; i++){ strings[i] = noPermissions.get(i); } ActivityCompat.requestPermissions(this, strings, permissionsRequestCode); }else { perissionRequestSuccessCallback(new String[]{}); } } @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case permissionsRequestCode: { // If request is cancelled, the result arrays are empty. List<String> successPermissionList = new ArrayList<>(); List<String> failPermissionList = new ArrayList<>(); if(grantResults.length > 0 && grantResults.length == permissions.length) { for (int i = 0; i < permissions.length; i++) { if (grantResults[i] == PackageManager.PERMISSION_GRANTED) { successPermissionList.add(permissions[i]); LogUtils.logI("用户同意权限", "user granted the permission!" + permissions[i]); } else { LogUtils.logI("用户不同意权限", "user denied the permission!" + permissions[i]); failPermissionList.add(permissions[i]); } } }else { for(int i = 0 ; i < permissions.length ; i++){ failPermissionList.add(permissions[i]); } } String[] successPermissions = new String[successPermissionList.size()]; for(int i = 0 ; i < successPermissionList.size() ; i++){ successPermissions[i] = successPermissionList.get(i); } String[] failPermissions = new String[failPermissionList.size()]; for(int i = 0 ; i < successPermissionList.size() ; i++){ failPermissions[i] = failPermissionList.get(i); } perissionRequestSuccessCallback(successPermissions); perissionRequestFailCallback(failPermissions); return; } } }
0 0
- 安卓权限管理
- 安卓权限管理
- 安卓6.0权限管理
- 安卓动态权限管理
- 安卓6.0的权限管理
- 安卓USB通信之权限管理
- 安卓6.0 文件存储权限管理
- 安卓6.0 文件存储权限管理
- 安卓USB通信之权限管理
- 安卓的整个权限管理:文章整理
- 安卓文件存储权限管理三种目录
- 安卓常用权限
- 安卓权限大全
- 安卓权限总结
- 安卓权限大全
- 安卓权限大全
- 安卓权限列表
- 安卓权限大全
- QPBOC交易流程详解--POS与卡片的数据交互进行分析
- 有关RecyclerView+ImageLoader图片加载的小问题
- 开始自己的编码之路
- xml笔记
- android给用户头像设置圆形加边框
- 安卓权限管理
- linux升级内核之后Virtualbox启动出错无法创建任务
- Hibernate(二)三种状态及延迟加载
- TestUrl
- 对于cvv d的问题。
- 50个Java多线程面试题
- android.content.res.Resources$NotFoundException: File res/drawable/ripple_round_blue.xml
- request中getContextPath、getServletPath的区别
- 前端开发APP,从HBuilder开始~