Android 6.0 Fragment权限请求问题
6.0出来也很久了,项目也因为没设配6.0引起了很多权限的BUG。之后看了下洪洋大神的Blog,基本上知道了如何请求权限,管理权限。
但是最近发现在Fragment中请求权限有点问题。
这里有两个坑:一个是Fragment中的请求方式,第二个就是Fragment中请求权限回调问题。
如何实现Fragment中的权限请求
看Blog都知道,请求权限可以通过以下方式去请求,这里模拟请求的是GPS Location权限
private void checkBlueToothPermission() {if (Build.VERSION.SDK_INT >= 23) {boolean hasLocationPermission =ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED;if (!hasLocationPermission) {ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, REQUEST_ENABLE_BT);}}}
但是在Fragment中我们不能通过ActivityCompat.requestPermissions去请求,因为这样纸请求Fragment不能收到onRequestPermissionsResult。所以我们应该直接用XXXfragment.this.requestPermissions去请求权限。
Fragment中请求权限回调
也许很纳闷,可能各位dalao的项目不会有这样的问题,但是在我的项目中偏偏出现了这样的问题。请求我是按照上面的XXXfragment.this.requestPermissions去请求权限,但是我的Fragment中仍然接收不到onRequestPermissionsResult回调。
观察项目发现,在这个Fragment的Activity也有同样的权限请求,同样也有onRequestPermissionsResult。但是我每次请求,都会被Activity的onRequestPermissionsResult所拦截,而Fragment中永远没有onRequestPermissionsResult回调。
于是我发现了,在Activity中的onRequestPermissionsResult没有调用到super.onRequestPermissionsResult(requestCode, permissions, grantResults); 当我加上之后出现了神奇的效应,Fragment中可以收到onRequestPermissionsResult的回调了!!!
Android 6.0 Fragment权限请求问题相关推荐
- android 6.0权限库,Android 6.0动态权限适配
前言 最近项目发现比较多的问题是关于Android 6.0的问题,APP安装之后,在Android 6.0之后的系统,点击直接奔溃打不开,这是为什么昵?这就是Android 6.0以上的系统引入运行时 ...
- Android 6.0动态权限申请
Android 6.0动态权限申请 特别感谢: https://www.jianshu.com/p/2fe4fb3e8ce0 本文是在该文的基础上添加了类似自己的读后感才完成的. 我并不希望成为白求恩 ...
- android 6.0动态权限问题
最近,我发现手机的6.0权限在小米手机上存在问题,我在网上搜了很多的代码,都没有解决这个问题,所以这里记录一下自己的android 6.0权限的解决代码,如果有问题,大家可以在网上自己在找找代码去解决 ...
- android wifimanager权限,Android 6.0.1 - 权限问题= wifiManager.getScanResults()返回0
permissionsList.add()不起作用,但MainActivity.this.requestPermissions()正常工作.问题是它带来一个对话框询问用户是否允许位置权限.Androi ...
- android app没有读写权限设置,Android 6.0以上权限拒绝打开权限设置界面的解决方法...
本人使用小米手机,打开qq或者微信的时候,某个权限拒绝的话,会提示你开启,点击开启会跳转到app的权限设置界面,当然了,这是国内系统深层定制的原因,也就是说这个界面原声的android没有的!这里以小 ...
- Android 7.0动态权限大总结
本文讲的是Android 7.0动态权限大总结,应公司项目需求,做了下Android 7.0适配.对于我们程序员,适配7.0主要就是对手机本地文件的Uri做转换处理.注意红色字体,意思也就是说对于ht ...
- [Android] Android 6.0 动态权限申请看完就会写
Android 6.0 动态权限申请看完就会写 文章目录 Android 6.0 动态权限申请看完就会写 1. 起 2. 权限 3. 四个方法 4. 使用 5. 总结 1. 起 Android 的动态 ...
- Android 6.0 动态权限申请
1. 概述 Android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户.在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在 ...
- Android 6.0动态权限
新项目,新苦B开始, 从Android 6.0(API 23)开始,允许用户在应用运行时决定是否允许权限,而不是在应用安装的时候.这种方法简化了应用的安装过程,因为用户在安装或更新应用的时候不需要允许 ...
最新文章
- 2009第二届C++技术大会即将在上海隆重召开
- 争夺基础架构主导权,AI 新一轮战争将打响?
- java -jar 和 java -cp用法
- SAP Spartacus PageMetaService 的单元测试
- java - 根据条件求对应数字
- oracle with和insert结合使用
- 系统调用和库函数调用
- tomcat和nginx配置java服务器
- 关于登录chkdsk的方法
- 【浙江大学PAT真题练习乙级】1008 数组元素循环右移问题 (20分)真题解析
- 类库从自带的配置文件中获取信息(DLL文件 获取 DLL文件自带的配置信息) z...
- Android启动模式分析
- 使用PHP制作 简易员工管理系统之三(管理员登陆界面以及数据库验证)
- 解决The number of method references in a .dex file cannot exceed 64K的问题
- 3D万花筒无限延伸动画特效(源码)
- 寻找真实IP-子域名查找
- 【数字化】分享整理-数据中台=大数据平台+数据资产管理平台+数据服务平台
- Emgucv类型转换
- 深度学习系列错误笔记(一)之print(‘gpu‘,torch.cuda.is_available())输出gpu False
- Activity中的数据传送—案例: 购买装备