部分机型进行运行时权限申请时不弹出授权弹框是什么情况?百分百弹出授权弹框,要不?
先看效果:
最近上架包到Googleplay的时候,由于targetSdkVersion低于26,被要求调整到26,那就调整呗。一调整,各种坑就来了。其他都是小坑。不讲。主要还是平时没当回事的运行时权限申请这块出问题了。在部分手机上checkSelfPermission完成后,如果没有权限,就会调用
requestPermissions(@NonNull final Activity activity, @NonNull final String[] permissions, final int requestCode)
来申请权限。正常情况下,这个方法一旦调用,就会弹出授权弹框。但是部分机型,却不会弹出。比如vivo,oppo,小米的部分机型。就不会,尤其是小米。即便知道没有权限,他能无限循环的申请都不弹出来。这是什么情况呢?
在做了一堆实验后如下规律(位置权限为例)。部分小米手机,首次安装app,权限都是询问状态。有些直接是允许。都不会弹出授权弹框。即便一直申请也不会弹出。网上有说要针对miui加入安装中心授权的判断。我加过了,没有用。最后看到别的app,进入可以直接弹出。这就有点好奇了。我自己的app经过大量测试,发现,要么是在五分钟后才弹出,要么就是在第二次打开app弹出。考虑了下位置权限的调用逻辑后发现:
这部分机型,真的是只有在你调用了该部分方法的时候才会申请授权。即便你没有调用 requestPermissions()方法,也会自动弹出授权弹框。 再试了下READ_PHONE_STATE权限,也是这样。真是无语了。被这个问题困扰了一天。再次记录下。方便其他人,莫入坑。
看到没,我就是在调用申请授权之前,先去调用相应的方法。我只需要位置权限,所以只调用了这个方法。如果想用READ_PHONE_STATE权限,也需要在申请授权之前调用。如下
TelephonyManager TelephonyMgr = (TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE); ime = TelephonyMgr.getDeviceId();
demo下载地址: https://download.csdn.net/download/shoneworn/10508629
部分机型进行运行时权限申请时不弹出授权弹框是什么情况?百分百弹出授权弹框,要不?相关推荐
- Android RuntimePermissions运行时权限:单个运行时权限申请简例
Android RuntimePermissions运行时权限:单个运行时权限申请简例 Android运行时权限申请的框架结构和步骤比较简单和固定,一般现状代码启动后检查当前的Android SDK版 ...
- 如何正确处理Android6.0+的运行时权限申请
从 Android 6.0(API 23) 开始,允许用户在应用运行时向其授予权限,好处有: 简化应用安装过程,无需在安装或更新时授予权限 用户可以对应用的功能进行更多控制:例如,用户可以选择为相机应 ...
- B4A 动态权限申请时遇到的问题与解决方法
在B4A中请求权限分两部分: 1.在manifest中添加相应的权限请求. 通过 AddPermission(XXXXXX) 添加相应权限 普通权限如网络权限,加到这一步就ok了,一些有风险的权限还需 ...
- Android PermissionUtils:运行时权限工具类及申请权限的正确姿势
Android PermissionUtils:运行时权限工具类及申请权限的正确姿势 ifadai 关注 2017.06.16 16:22* 字数 318 阅读 3637评论 1喜欢 6 Permis ...
- android申请多个运行时权限,Android 6.0(API 23) 运行时权限(二)之权限申请
Android M 在上一篇中简单介绍了运行时权限,今天就讲讲怎么去申请权限.这个项目中本来用了一个第三方的权限框架,但是不太好用,我就在github上选择了start最多的PermissionsDi ...
- 运行时权限框架YPermission开源
项目地址:github.com/ysbing/YPer- 一.介绍 Android运行时权限申请库,兼容大部分手机,支持多场景调用. 二.框架特性 支持Activity.Fragment.Applic ...
- Android运行时权限
Android运行时权限 参考网址:在运行时请求权限 在Android6.0之前应用请求权限都是在应用安装时将所有权限清单展示给用户,当用户选择安装就默认允许应用请求的所有权限,而Android6.0 ...
- 聊一聊Android 6.0的运行时权限
Android 6.0,代号棉花糖,自发布伊始,其主要的特征运行时权限就很受关注.因为这一特征不仅改善了用户对于应用的使用体验,还使得应用开发者在实践开发中需要做出改变. 没有深入了解运行时权限的开发 ...
- Android权限 权限等级 普通权限 敏感权限 申请权限
权限等级 Android权限分为两种,normal和dangerous.normal为普通权限,不需要程序动态申请,在Manifest中声明就可以.dangerous为敏感权限,需要程序动态申请. 普 ...
最新文章
- Java Learning:并发中的同步锁(synchronized)
- 【转】6 个技巧,提升 C++11 的 vector 性能
- 您的空间不支持PHP,空间不支持fsockopen函数解决办法
- 影响程序员生涯的三个错误观念,你千万不要犯
- Page_Load的问题
- Kconfig文件详解
- Shiro 实战教程
- 生产者/消费者模式(一)
- 诺基亚赢得运营商Orange比利时5G合同,华为回应...
- bboss_spring_struts2_myibatis对比分析
- CodeForces 103D	Time to Raid Cowavans 分块+dp
- Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序 原理and实现
- Missing artifact com.lowagie:itextasian:jar:2.1.7
- python MAC地址查询
- 电大网络教育计算机应用基础,(热)最新电大奥鹏远程网络教育计算机应用基础题库.doc...
- 【硬件】贴片电阻的封装尺寸及丝印标注
- 程序员的奋斗史(三十一)——人在囧途之应聘篇(一)
- 数学机器人与火星人相遇了
- 05-----关于C++使用VS时出现 error C2248: “xxx“ 无法访问private成员(在“MySpdlog“类中声明)
- vc++实现avi文件的操作