Android 运行时权限的“读取运动数据权限”“读取应用程序列表”问题

前言:今天在做 Android6.0权限适配问题 ,测试人员在 “华为”手机上测试时,莫名的弹出了 “读取运动数据权限”的申请框。

当测试人员来找我的时候,我哑口无言,瞬间懵了。并没有进行 这方面的权限申请啊

但我还是开始从项目中查询,再此确认后,并没有什么问题,只能倚靠强大的搜索引擎。

以下是我的搜索结果【我把下面这篇文章拿给测试的讲解了一边^_^】

转载自:http://www.androidchina.net/6593.html

四、Android权限机制“乱象”

这里要说的乱象,其实是和Android严重的碎片化有一定的关系。随着国产ROM越来越个性,很多ROM在尝试建立自己的权限机制,有些甚至基于Android5.x就开放了原生的或者开发了自己的权限机制。而面对这些情况,我们往往能做的非常有限,举几个例子。

1、读取运动数据权限

开发QQ音乐跑步电台的过程中发现,在某国产ROM的一些机型上会提示“应用读取运动数据权限”的系统弹窗。可是,反复查阅相关API发现,我们使用的计步相关的Sensor并不需要申请什么权限。可如果用户选择了拒绝,即使APP注册了Sensor,也收不到系统的回调。后来联系该厂商的相关人员后,给出的答复是,第三方APP无法检查和申请这个权限,这个权限本身也属于该厂商ROM自己的权限机制。

2、类似的案例还有一个,就是在某厂商的手机管家,会一直提示QQ音乐尝试读取应用程序列表。其实,我们并没有读取应用程序列表,只是调用了PackageManager相关的一些API,就是触发这个告警。

对于这类问题,我们怀疑,第三方ROM是在运行时检测到了APP调用了相关的API后,进行权限阻断。这里开发同学需要注意的是,被阻断的API不一定会导致crash,但是可能导致我们获取不到正确的返回值或者收不到系统的一些消息回调。

你可能感兴趣的:(Android 运行时权限的“读取运动数据权限”“读取应用程序列表”问题)