Android6.0动态申请权限
来源:互联网 发布:淘宝箱包类目 编辑:程序博客网 时间:2024/05/22 17:01
Android6.0动态申请权限
android6.0之后一些敏感的权限需要在清单文件中注册之外,还需要在代码中动态申请,这里以蓝牙权限为例,我们现在在代码中申请以下三个权限,“android.permission.BLUETOOTH_ADMIN”,“android.permission.BLUETOOTH”,“android.permission.ACCESS_COARSE_LOCATION”;
1.先定义一个字符串数组将我们要申请的权限全部存放在里面
String[] permissions = new String[]{ "android.permission.BLUETOOTH_ADMIN", "android.permission.BLUETOOTH" , "android.permission.ACCESS_COARSE_LOCATION"};
2.检查手机是否包含这些权限
public boolean requestAll() { for (String peimiss : permissions) { if (ActivityCompat.checkSelfPermission(this, peimiss) != PackageManager.PERMISSION_GRANTED) { return false; } } return true; }
返回false表示没有权限,返回true表示有权限,当没有权限时我们再申请权限
3.动态申请权限
if (Build.VERSION.SDK_INT >= 23 && !requestAll()) { ActivityCompat.requestPermissions(this, permissions, 0); }
完成上述三步后,在没有权限时就会弹出对话框提醒用户打开权限,如果还想监听用户点击对话框的监听,那么就要监听以下方法
4.重写onRequestPermissionsResult方法
//请求n个权限 permissions.length=n grantResults.length=n //permissions[i]表示申请的权限字符串 grantResults[i]的值表示用户反馈的结果 0表示同意 -1表示不同意 //requestCode 的值表示和当时申请权限时的值一致@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { for (int i = 0; i < permissions.length; i++) { Log.e("Test","permissions==" + i + " ==" + permissions[i]); } for (int i = 0; i < grantResults.length; i++) { Log.e("Test","mygt grantResults==" + i + " ==" + grantResults[i]); if (grantResults[i] == -1) { //finish();用户不同意打开申请时结束APP } } Log.e("Test","requestCode==" + requestCode + " "); super.onRequestPermissionsResult(requestCode, permissions, grantResults); }
阅读全文
1 0
- android6.0 动态申请权限
- Android6.0动态权限申请
- Android6.0:动态权限申请
- Android6.0动态申请权限
- android6.0 动态申请权限
- android6.0 动态权限申请
- Android6.0动态权限申请
- Android6.0动态权限申请
- android6.0 动态申请权限
- Android6.0动态权限申请
- android6.0动态权限申请
- Android6.0动态权限申请
- Android6.0动态权限申请
- Android6.0动态权限申请
- Android6.0动态申请权限
- Android6.0动态申请权限
- ANDROID6.0权限部分动态申请
- android6.0以上动态申请权限问题。
- 仿京东淘宝的秒杀倒计时实现
- 惠更斯Rothermel模型模拟-森林火灾-计算坐标(思路)
- Spark性能优化:数据倾斜调优
- JAVA字符串格式化-String.format()的使用
- 隐藏应用图标并保持应用能正常调试运行
- Android6.0动态申请权限
- Solr之基于注解开发-yellowcong
- PCH 文件简单使用与自定义NSLog
- $.get $.post $.getJSON $.load异步请求的区别
- LintCode 第167题目 链表求和
- 比特币学习之-P2P网络
- Lucene的入门
- ijkplayer编译
- 9. Golang 资源