在运行时请求Android权限的边界情况

时间:2017-03-20 14:49:25

标签: android android-permissions

在Android> = 6:

  1. 当需要权限P的方法被调用但未在清单中声明权限P时,将引发java.lang.SecurityException

  2. 当我不检查是否授予危险权限并且我调用使用它的方法时,会发生同样的异常。

  3. 当您使用ActivityCompat.requestPermissions方法在运行时请求危险权限P,但未在清单中声明危险权限P时,不会出现对话框并且拒绝权限默认情况下(你看不到这发生在日志中)。

  4. 这些说法是对的吗?

1 个答案:

答案 0 :(得分:1)

  

当一个需要权限P的方法被调用但是在清单中没有声明权限P时,将引发java.lang.SecurityException。

一般来说正确。可能存在一些边缘情况,其中引发了一些其他异常。由权限保护的行为将无法正常工作。

  

当我没有检查是否授予危险权限并且我调用使用它的方法时,会发生同样的异常。

仅适用于Android 6.0及以上targetSdkVersion 23或更高版本的应用。

  

当您在运行时使用ActivityCompat.requestPermissions方法请求危险权限P,但是在清单中未声明危险权限P时,对话框不会显示,并且权限被拒绝默认(并且您无法看到这发生在日志中)。

"默认拒绝"部分与您的第一个问题相同。否则,您是对的 - 您只能为清单中请求的那些dangerous请求运行时权限。