在新的api版本的android(API 23)中,我们现在需要在运行时请求权限。如果请求的权限是应用级别或活动,我有一个非常基本的疑问。根据{{3}}文档,每次执行需要该权限的操作时,您都必须检查是否拥有该权限。这是否意味着在应用级别授予了权限,但建议在活动级别进行检查?此外,建议按照以下方式检查许可:
// Assume thisActivity is the current activity
int permissionCheck = ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.WRITE_CALENDAR);
在这里,我们清楚地看到通过传递活动的上下文来检查权限。如果给定的权限是在应用程序级别,为什么我们需要活动上下文而不是应用程序上下文?(尽管该方法可能在内部从活动上下文获取应用程序上下文。)
答案 0 :(得分:3)
如果请求的权限是应用级别或活动
Android中的所有权限都适用于整个应用。
这是否意味着在应用级别授予了权限,但建议在活动级别进行检查?
通过checkSelfPermission()
可以在任何地方检查您是否拥有权限。 请求用户的权限必须通过requestPermissions()
从活动中完成。生成的权限授予将用于整个应用程序。
如果给定的权限是应用级别,为什么我们需要活动上下文而不是应用程序上下文?
任何Context
都适用于ContextCompat
方法。