运行时权限应用级别或活动级别

时间:2015-12-26 12:47:08

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

在新的api版本的android(API 23)中,我们现在需要在运行时请求权限。如果请求的权限是应用级别或活动,我有一个非常基本的疑问。根据{{​​3}}文档,每次执行需要该权限的操作时,您都必须检查是否拥有该权限。这是否意味着在应用级别授予了权限,但建议在活动级别进行检查?此外,建议按照以下方式检查许可:

// Assume thisActivity is the current activity
int permissionCheck = ContextCompat.checkSelfPermission(thisActivity,
        Manifest.permission.WRITE_CALENDAR);

在这里,我们清楚地看到通过传递活动的上下文来检查权限。如果给定的权限是在应用程序级别,为什么我们需要活动上下文而不是应用程序上下文?(尽管该方法可能在内部从活动上下文获取应用程序上下文。)

1 个答案:

答案 0 :(得分:3)

  

如果请求的权限是应用级别或活动

Android中的所有权限都适用于整个应用。

  

这是否意味着在应用级别授予了权限,但建议在活动级别进行检查?

通过checkSelfPermission()可以在任何地方检查您是否拥有权限。 请求用户的权限必须通过requestPermissions()从活动中完成。生成的权限授予将用于整个应用程序。

  

如果给定的权限是应用级别,为什么我们需要活动上下文而不是应用程序上下文?

任何Context都适用于ContextCompat方法。