public final class PermissionChecker
extends Object
java.lang.Object | |
↳ | android.support.v4.content.PermissionChecker |
这个类提供了权限检查API,如果定义了此权限,它将验证权限和相关应用程序的权限。
在新的权限模型中,具有危险级别的权限是运行时权限。 对于定位为M
及以上的应用,用户可能不会授予这些权限或随时撤销这些权限。 对于定位API低于M
这些权限总是被授予,因为此类应用不会期望权限撤销并会崩溃。 因此,当用户在用户界面中禁用旧版应用程序的权限时,平台会禁用受此权限保护的API,使其成为不做任何操作或返回空结果或默认错误的禁用操作。
当您代表另一个应用程序执行操作时,使用这些API检查权限是很重要的,因为应用程序可能是一个旧版应用程序,它不参与用户禁用其“允许”的新权限模型是通过禁止相应的应用程序来实现的。
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
|
int PERMISSION_DENIED
权限结果:权限被拒绝。
常量值:-1(0xffffffff)
int PERMISSION_DENIED_APP_OP
权限结果:权限被拒绝,因为应用操作不被允许。
常量值:-2(0xfffffffe)
int PERMISSION_GRANTED
权限结果:授予权限。
常量值:0(0x00000000)
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 . |
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 . |
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 . |
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 . |