权限

与原生代码中的权限检查相关的结构和函数。

摘要

枚举

匿名枚举 56{
  PERMISSION_MANAGER_PERMISSION_GRANTED = 0,
  PERMISSION_MANAGER_PERMISSION_DENIED = -1
}
枚举
权限检查结果。
匿名枚举 57{
  PERMISSION_MANAGER_STATUS_OK = 0,
  PERMISSION_MANAGER_STATUS_ERROR_UNKNOWN = -1,
  PERMISSION_MANAGER_STATUS_SERVICE_UNAVAILABLE = -2
}
枚举
权限检查返回状态值。

函数

APermissionManager_checkPermission(const char *permission, pid_t pid, uid_t uid, int32_t *outResult)
int32_t
检查给定 pid/uid 的软件包是否已被授予某权限。

枚举

匿名枚举 56

声明于 android/permission_manager.h
 Anonymous Enum 56

权限检查结果。

在 API 31 中引入。

属性
PERMISSION_MANAGER_PERMISSION_DENIED

如果给定软件包未被授予该权限,则 APermissionManager_checkPermission() 会返回此值。

PERMISSION_MANAGER_PERMISSION_GRANTED

如果给定软件包已被授予该权限,则 APermissionManager_checkPermission() 会返回此值。

匿名枚举 57

声明于 android/permission_manager.h
 Anonymous Enum 57

权限检查返回状态值。

在 API 31 中引入。

属性
PERMISSION_MANAGER_STATUS_ERROR_UNKNOWN

如果权限检查遇到未指定的错误,则返回此值。

输出结果未修改。

PERMISSION_MANAGER_STATUS_OK

如果权限检查没有发生错误,则返回此值。

输出结果有效,并且包含 {PERMISSION_MANAGER_PERMISSION_GRANTED, PERMISSION_MANAGER_PERMISSION_DENIED} 中的一个。

PERMISSION_MANAGER_STATUS_SERVICE_UNAVAILABLE

如果因服务不可用而导致权限检查失败,则返回此值。

输出结果未修改。

函数

APermissionManager_checkPermission

声明于 android/permission_manager.h
int32_t APermissionManager_checkPermission(
  const char *permission,
  pid_t pid,
  uid_t uid,
  int32_t *outResult
)

检查给定 pid/uid 的软件包是否已被授予某权限。

请注意,由于缓存,Context::checkPermission() 的 Java API 通常更快,因此尽可能优先使用该 API。

详情
参数
permission
要检查的权限。
pid
要检查的软件包的进程 ID。
uid
要检查的软件包的 UID。
outResult
权限检查结果的输出。
返回值
检查期间发生的任何错误的错误代码。