Most visited

Recently visited

PermissionChecker

public final class PermissionChecker
extends Object

java.lang.Object
   ↳ android.support.v4.content.PermissionChecker


这个类提供了权限检查API,如果定义了此权限,它将验证权限和相关应用程序的权限。

在新的权限模型中,具有危险级别的权限是运行时权限。 对于定位为M及以上的应用,用户可能不会授予这些权限或随时撤销这些权限。 对于定位API低于M这些权限总是被授予,因为此类应用不会期望权限撤销并会崩溃。 因此,当用户在用户界面中禁用旧版应用程序的权限时,平台会禁用受此权限保护的API,使其成为不做任何操作或返回空结果或默认错误的禁用操作。

当您代表另一个应用程序执行操作时,使用这些API检查权限是很重要的,因为应用程序可能是一个旧版应用程序,它不参与用户禁用其“允许”的新权限模型是通过禁止相应的应用程序来实现的。

Summary

Nested classes

@interface PermissionChecker.PermissionResult

 

Constants

int PERMISSION_DENIED

权限结果:权限被拒绝。

int PERMISSION_DENIED_APP_OP

权限结果:权限被拒绝,因为应用操作不被允许。

int PERMISSION_GRANTED

权限结果:授予权限。

Public methods

static int checkCallingOrSelfPermission(Context context, String permission)

检查您正在处理的IPC或您的应用是否具有给定权限,以及是否允许与此权限相对应的应用操作。

static int checkCallingPermission(Context context, String permission, String packageName)

检查您正在处理的IPC是否具有给定权限,以及是否允许与此权限相对应的应用程序操作。

static int checkPermission(Context context, String permission, int pid, int uid, String packageName)

检查UID和PID中的给定包是否具有给定权限以及是否允许与此权限对应的应用操作。

static int checkSelfPermission(Context context, String permission)

检查您的应用是否具有给定的权限以及是否允许与此权限相对应的应用操作。

Inherited methods

From class java.lang.Object

Constants

PERMISSION_DENIED

int PERMISSION_DENIED

权限结果:权限被拒绝。

常量值:-1(0xffffffff)

PERMISSION_DENIED_APP_OP

int PERMISSION_DENIED_APP_OP

权限结果:权限被拒绝,因为应用操作不被允许。

常量值:-2(0xfffffffe)

PERMISSION_GRANTED

int PERMISSION_GRANTED

权限结果:授予权限。

常量值:0(0x00000000)

Public methods

checkCallingOrSelfPermission

int checkCallingOrSelfPermission (Context context, 
                String permission)

检查您正在处理的IPC或您的应用是否具有给定权限,以及是否允许与此权限相对应的应用操作。

Parameters
context Context: Context for accessing resources.
permission String: The permission to check.
Returns
int The permission check result which is either PERMISSION_GRANTED or PERMISSION_DENIED or PERMISSION_DENIED_APP_OP.

checkCallingPermission

int checkCallingPermission (Context context, 
                String permission, 
                String packageName)

检查您正在处理的IPC是否具有给定权限,以及是否允许与此权限相对应的应用程序操作。

Parameters
context Context: Context for accessing resources.
permission String: The permission to check.
packageName String: The package name making the IPC. If null the the first package for the calling UID will be used.
Returns
int The permission check result which is either PERMISSION_GRANTED or PERMISSION_DENIED or PERMISSION_DENIED_APP_OP.

checkPermission

int checkPermission (Context context, 
                String permission, 
                int pid, 
                int uid, 
                String packageName)

检查UID和PID中的给定包是否具有给定权限以及是否允许与此权限对应的应用操作。

Parameters
context Context: Context for accessing resources.
permission String: The permission to check.
pid int: The process id for which to check.
uid int: The uid for which to check.
packageName String: The package name for which to check. If null the the first package for the calling UID will be used.
Returns
int The permission check result which is either PERMISSION_GRANTED or PERMISSION_DENIED or PERMISSION_DENIED_APP_OP.

checkSelfPermission

int checkSelfPermission (Context context, 
                String permission)

检查您的应用是否具有给定的权限以及是否允许与此权限相对应的应用操作。

Parameters
context Context: Context for accessing resources.
permission String: The permission to check.
Returns
int The permission check result which is either PERMISSION_GRANTED or PERMISSION_DENIED or PERMISSION_DENIED_APP_OP.

Hooray!