3

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

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

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

4

1 回答 1

4

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

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

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

检查您是否有权限可以在任何地方通过checkSelfPermission(). 必须通过 Activity 从用户那里请求requestPermissions()许可。由此产生的权限授予将适用于您的整个应用程序。

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

任何方法Context都适用ContextCompat

于 2015-12-26T14:13:06.307 回答