Android Marshmallow中的运行时权限检查

时间:2016-03-28 19:56:17

标签: android android-6.0-marshmallow android-permissions

关于Marshmallow,如何判断Android中哪些操作系统调用需要权限检查?对于某些位置管理器调用,如果在调用之前未检查权限,则编译器将显示错误。但是,有很多其他操作系统调用需要权限,但如果在调用之前未检查权限,则不会生成编译器错误。

例如,我在我的一个应用程序中调用了位置管理器的sendExtraCommand方法。编译器在调用之前没有给出任何需要权限检查的指示,所以我没有。当我将鼠标悬停在Android Studio中的调用上时,文档窗口中的信息不会显示调用所需的权限。但是当Marshmallow用户开始使用我的应用程序时,他们就会遇到安全例外。

仅仅是我,还是Marshmallow的安全事情是非常糟糕的想法?

这里有一个类似的问题,但它没有任何好的答案,所以我创建了这个问题,希望问题能得到更多的关注: How to find required Android Marshmallow runtime permissions in code?

1 个答案:

答案 0 :(得分:1)

  

如何判断Android中哪些操作系统调用需要权限检查?

如您所知,在某些情况下,您可能会收到Lint警告等。有人想象这会随着时间的推移而改善。

在其他情况下,您阅读了JavaDocs,其中类或方法提到您需要权限。将<uses-permission>元素添加到清单时,还要考虑这是否是the dangerous permissions that requires handling at runtime之一。

除此之外,您可以在测试应用时发现测试失败。

如果您发现这些内容不足,请将targetSdkVersion设置为22或更低,直到您对Android的运行时权限支持感到满意为止。