android申请权限一次性申请多个,Android 批量申请权限
Android开发时,到6.0系统上之后,有的权限就得申请才能用了。
Android将权限分为正常权限 和 危险权限
详细可参考: (https://www.cnblogs.com/liuzhipenglove/p/7102692.html)
网上也有很多参考例子,我这里总结下我的理解和用法
我们知道在Android6.0(SDK等级是23)以后有些权限是需要动态申请的
然后这里主要记录下如何同时动态申请多个权限
我申请的权限有三个:READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE,CAMERA,分别是读,写,还有相机权限, INTERNET的话我发现静态注册也是可以的,当然以防万一也可以加上.然后就是虽然是动态申请,但是还是需要在AndroidManifest.xml文件中进行静态申请的:
然后是动态权限申请
<1>首先声明一个数组permissions,将所有需要申请的权限都放在里面
//1、首先声明一个数组permissions,将所有需要申请的权限都放在里面
String[] permissions = new String[]{
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
<2>创建一个mPermissionList,逐个判断哪些权限未授权,将未授权的权限存储到mPermissionList中
// 声明一个集合,用来存储用户拒绝授权的权
List mPermissionList = new ArrayList<>();
<3>声明一个请求码,在请求权限的回调方法onRequestPermissionsResult中需要判断使用
//10000比较霸气
private static final int MY_PERMISSIONS_REQUEST_CODE = 10000;
<4>进行权限判断和申请
private void getPermissions() {
mPermissionList.clear(); //清空已经允许的没有通过的权限
for (int i = 0; i < permissions.length; i++) { //逐个判断是否还有未通过的权限
if (ContextCompat.checkSelfPermission(MainActivity.this, permissions[i]) != PackageManager.PERMISSION_GRANTED) {
mPermissionList.add(permissions[i]);
}
}
if (mPermissionList.size() > 0) { //有权限没有通过,需要申请
ActivityCompat.requestPermissions(this, permissions, MY_PERMISSIONS_REQUEST_CODE);
} else {
Log.e("getPermissions() >>>", "已经授权"); //权限已经都通过了
}
}
<5>请求权限后回调的方法,在权限请求完成后做个判断,是否完成了所有权限的申请,
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
boolean hasPermissionDismiss = false; //有权限没有通过
if (MY_PERMISSIONS_REQUEST_CODE == requestCode) {
for (int i = 0; i < grantResults.length; i++) {
if (grantResults[i] == -1) {
hasPermissionDismiss = true; //发现有未通过权限
break;
}
}
}
if (hasPermissionDismiss) { //如果有没有被允许的权限
//假如存在有没被允许的权限,可提示用户手动设置 或者不让用户继续操作
} else {
Log.e("onRequestPermissionsResult >>>", "已全部授权");
}
}
还有记录一个坑
image.png
如果你的gradle文件中
targetSdkVersion 参数设置成了21的话 等于是用6.0以前的版本运行,这样的话有可能导致无法动态申请权限,这点需要特别注意下
如若有补充,留言区留下你的宝贵意见,谢谢!!!
android申请权限一次性申请多个,Android 批量申请权限相关推荐
- android申请权限一次性申请多个,android 6.0以上动态一次申请多个权限-最美解决方案...
目录 背景 危险权限 申请权限思路 申请权限流程 干货 后续 一.背景 android23 API新增危险权限校验,需要手动获取: 二.危险权限: 日历数据 android.permission-gr ...
- android申请权限一次性申请多个,Android适配6.0动态申请权限,多权限同时申请
哈哈,现在写适配6.0好像有点马后炮的感觉,不过以前确实没有注意到这些问题.前几天在添加高德地图定位功能的时候发现在Android 6.0系统上有很多的权限需要进行动态申请. 下面先来看一下在Andr ...
- 【Android 应用开发】动态权限管理示例 ( 使用原生代码实现 | 申请权限 | 判定权限申请结果 | 判定 “ 不再询问 “ 情况 )
文章目录 一.申请权限 二.判定权限申请结果 三.判定 " 不再询问 " 情况 四.完整代码示例 1.权限管理代码 2.主界面代码 3.执行结果 五.博客资源 一.申请权限 首先 ...
- 【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 最简单用法 | 一行代码搞定权限申请 | 推荐用法 )
文章目录 一.添加依赖 二.在 AndroidManifest.xml 中配置权限 三.权限申请最简单用法 四.推荐使用的用法 五.GitHub 地址 上一篇博客 [Android 应用开发]Goog ...
- android 动态申请权限_你真的了解Android权限机制吗?
码个蛋(codeegg)第 610 次推文 作者:FeelsChaotic 原文:https://www.jianshu.com/p/a17c8bed79d9 前言 Android将安全设计贯穿系统架 ...
- Android权限系统(三):运行时权限检查和申请,PermissionController
请求应用权限的最佳实践 Google提供的请求应用权限的说明如下:请求应用权限 官方提供的模板使用了三个条件分支来请求应用权限: 1.checkSelfPermission用来检查应用是否 ...
- android京东打不开,京东商城Android权限申请流程分析
京东动态申请定位权限分析 京东权限申请流程.png 1.安装完成后,权限状态为询问状态,此时,进入应用提示 首次进入App提示信息.png 1.1点击取消,对话框消失,Toast提示信息如下 需在手机 ...
- android 6.0蓝牙服务开启,Android应用开发之Android 6.0 蓝牙搜索不到设备原因,MIUI权限申请机制方法...
本文将带你了解Android应用开发Android 6.0 蓝牙搜索不到设备原因,MIUI权限申请机制方法,希望本文对大家学Android有所帮助. 为提供更高的数据保护 Android6.0版本 ...
- Android 申请权限前简单封装弹框阐述申请理由工具类,应付app合规检查
近段时间浏览新闻经常会看到工信部通报某某app合规检查不合格,拒不整改,勒令全部下架这些信息,尤其是金融类app.个人信息的保护对用户确实是非常重要的,相信绝大多数行业工作者也感觉到了这些年国家对互联 ...
最新文章
- nginx技术(2)nginx的配置详解
- 搭建squid代理服务器
- 解决git clone慢问题
- 19-6/24作业:求四位会员卡号之和
- Centos7_ELK5.4.1配置部署
- CVS Branch 和 Merge 在 Eclipse 中的使用
- quartz获取开始结束时间_Springboot集成quartz
- 究竟如何保证session一致性?
- java界面混乱_JAVA界面不稳定
- 中国特种可注射仿制药市场趋势报告、技术动态创新及市场预测
- 解包操作符 python_用解包操作符 * 解包列表
- Restful无状态请求和网关
- backup exec删除备份文件
- 【Kindle】pdf转mobi适合kindle查看格式
- 狗年出生的宝宝取名都有哪些注意事项呢?起名真不是简单事
- python计算1的平方减2的平方加3的平方减4的平方怎么算_墙体的面积怎么算的快?墙的平方快速计算方法...
- 自定义注解,实现业务处理
- 都在这儿!最全的北斗厂家企业名单!
- 图卷积神经网络(GCN)综述与实现(PyTorch版)
- 计算机网络封装和解封的概念,以太网数据封装与解封过程
热门文章
- Difference between RawValue and FormattedValue
- Why product sales area is not replicated to CRM
- 如何禁止SAP Fiorigateway系统上的病毒扫描
- 使用cat写入内容到指定文件
- Jerry的WebClient UI 42篇原创文章合集
- oracle中角色和用户权限,Oracle用户、角色、权限管理
- java中的softreference_Java中的SoftReference和WeakReference有什么区别?
- python注释_python中的单行注释、多行注释
- boc android app,BOC
- datax mysql replace_DataX-MySQL(读写)