先看效果:

最近上架包到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

部分机型进行运行时权限申请时不弹出授权弹框是什么情况?百分百弹出授权弹框,要不?相关推荐

  1. Android RuntimePermissions运行时权限:单个运行时权限申请简例

    Android RuntimePermissions运行时权限:单个运行时权限申请简例 Android运行时权限申请的框架结构和步骤比较简单和固定,一般现状代码启动后检查当前的Android SDK版 ...

  2. 如何正确处理Android6.0+的运行时权限申请

    从 Android 6.0(API 23) 开始,允许用户在应用运行时向其授予权限,好处有: 简化应用安装过程,无需在安装或更新时授予权限 用户可以对应用的功能进行更多控制:例如,用户可以选择为相机应 ...

  3. B4A 动态权限申请时遇到的问题与解决方法

    在B4A中请求权限分两部分: 1.在manifest中添加相应的权限请求. 通过 AddPermission(XXXXXX) 添加相应权限 普通权限如网络权限,加到这一步就ok了,一些有风险的权限还需 ...

  4. Android PermissionUtils:运行时权限工具类及申请权限的正确姿势

    Android PermissionUtils:运行时权限工具类及申请权限的正确姿势 ifadai 关注 2017.06.16 16:22* 字数 318 阅读 3637评论 1喜欢 6 Permis ...

  5. android申请多个运行时权限,Android 6.0(API 23) 运行时权限(二)之权限申请

    Android M 在上一篇中简单介绍了运行时权限,今天就讲讲怎么去申请权限.这个项目中本来用了一个第三方的权限框架,但是不太好用,我就在github上选择了start最多的PermissionsDi ...

  6. 运行时权限框架YPermission开源

    项目地址:github.com/ysbing/YPer- 一.介绍 Android运行时权限申请库,兼容大部分手机,支持多场景调用. 二.框架特性 支持Activity.Fragment.Applic ...

  7. Android运行时权限

    Android运行时权限 参考网址:在运行时请求权限 在Android6.0之前应用请求权限都是在应用安装时将所有权限清单展示给用户,当用户选择安装就默认允许应用请求的所有权限,而Android6.0 ...

  8. 聊一聊Android 6.0的运行时权限

    Android 6.0,代号棉花糖,自发布伊始,其主要的特征运行时权限就很受关注.因为这一特征不仅改善了用户对于应用的使用体验,还使得应用开发者在实践开发中需要做出改变. 没有深入了解运行时权限的开发 ...

  9. Android权限 权限等级 普通权限 敏感权限 申请权限

    权限等级 Android权限分为两种,normal和dangerous.normal为普通权限,不需要程序动态申请,在Manifest中声明就可以.dangerous为敏感权限,需要程序动态申请. 普 ...

最新文章

  1. Java Learning:并发中的同步锁(synchronized)
  2. 【转】6 个技巧,提升 C++11 的 vector 性能
  3. 您的空间不支持PHP,空间不支持fsockopen函数解决办法
  4. 影响程序员生涯的三个错误观念,你千万不要犯
  5. Page_Load的问题
  6. Kconfig文件详解
  7. Shiro 实战教程
  8. 生产者/消费者模式(一)
  9. 诺基亚赢得运营商Orange比利时5G合同,华为回应...
  10. bboss_spring_struts2_myibatis对比分析
  11. CodeForces 103D Time to Raid Cowavans 分块+dp
  12. Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序 原理and实现
  13. Missing artifact com.lowagie:itextasian:jar:2.1.7
  14. python MAC地址查询
  15. 电大网络教育计算机应用基础,(热)最新电大奥鹏远程网络教育计算机应用基础题库.doc...
  16. 【硬件】贴片电阻的封装尺寸及丝印标注
  17. 程序员的奋斗史(三十一)——人在囧途之应聘篇(一)
  18. 数学机器人与火星人相遇了
  19. 05-----关于C++使用VS时出现 error C2248: “xxx“ 无法访问private成员(在“MySpdlog“类中声明)
  20. vc++实现avi文件的操作

热门文章

  1. 是男人就下一百层 C语言 Easyx 实现 游戏
  2. TOP200!最新自然指数,来了!
  3. 【iOS开发】字典的快速赋值 setValuesForKeysWithDictionary
  4. Ehcache-xsi:noNamespaceSchemaLocation连接获取错误
  5. 破解ZIP压缩包破解密码
  6. 2022年熔化焊接与热切割考试资料及熔化焊接与热切割免费试题
  7. 一步一步教你如何解锁被盗的iPhone 6s
  8. 重装系统格式化错误该如何解决
  9. Oracle使用游标查询所有数据表备注
  10. Ulord交易网站 ut交易网站