05dac0f4创建于 2025年12月15日历史提交

@ohos.abilityAccessCtrl (程序访问控制管理)

程序访问控制提供程序的权限校验能力。

说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

支持权限

当前支持跨平台的权限可在系统权限定义列表中查询。

导入模块

import { abilityAccessCtrl } from '@kit.AbilityKit';

abilityAccessCtrl.createAtManager

createAtManager(): AtManager

访问控制管理:获取访问控制模块对象。

支持平台: Android、iOS

系统能力: SystemCapability.Security.AccessToken

返回值:

类型 说明 Android平台 iOS平台
AtManager 获取访问控制模块的实例。 支持 支持

示例:

let atManager = abilityAccessCtrl.createAtManager();

AtManager

管理访问控制模块的实例。

checkAccessToken9+

checkAccessToken(tokenID: number, permissionName: Permissions): Promise<GrantStatus>

校验应用是否授予权限。使用Promise异步回调。当前跨平台上仅支持校验当前应用的自己的授权状态。

支持平台: Android、iOS

系统能力: SystemCapability.Security.AccessToken

参数:

参数名 类型 必填 说明 Android平台 iOS平台
tokenID number 要校验的目标应用的身份标识。当前跨平台上仅支持校验当前应用自身的授权状态,tokenID可以填任意非0值。 支持 支持
permissionName Permissions 需要校验的权限名称,合法的权限名取值可在系统权限定义列表中查询。 支持 支持

返回值:

类型 说明
Promise<GrantStatus> Promise对象。返回授权状态结果。

错误码:

错误码ID 错误信息
12100001 The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256.

示例:

import { abilityAccessCtrl } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
let tokenID: number = 1;

try {
  atManager.checkAccessToken(tokenID, 'ohos.permission.CAMERA').then((data: abilityAccessCtrl.GrantStatus) => {
  console.info(`checkAccessToken success, data->${JSON.stringify(data)}`);
  }).catch((err: BusinessError) => {
  console.error(`checkAccessToken fail, err->${JSON.stringify(err)}`);
  });
} catch(err) {
  console.error(`catch err->${JSON.stringify(err)}`);
}

checkAccessTokenSync10+

checkAccessTokenSync(tokenID: number, permissionName: Permissions): GrantStatus

校验应用是否被授予权限,同步返回结果。当前跨平台上仅支持校验当前应用的自己的授权状态。

支持平台: Android、iOS

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Security.AccessToken

参数:

参数名 类型 必填 说明 Android平台 iOS平台
tokenID number 要校验的目标应用的身份标识。当前跨平台上仅支持校验当前应用自身的授权状态,tokenID可以填任意非0值。 支持 支持
permissionName Permissions 需要校验的权限名称,合法的权限名取值可在系统权限定义列表中查询。 支持 支持

返回值:

类型 说明
GrantStatus 枚举实例,返回授权状态。

错误码:

错误码ID 错误信息
12100001 The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256.

示例:

let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
let tokenID: number = 1;
let data: abilityAccessCtrl.GrantStatus = atManager.checkAccessTokenSync(tokenID, 'ohos.permission.CAMERA');
console.info(`data->${JSON.stringify(data)}`);

GrantStatus

表示授权状态的枚举。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Security.AccessToken

名称 说明 Android平台 iOS平台
PERMISSION_DENIED -1 表示未授权。 支持 支持
PERMISSION_GRANTED 0 表示已授权。 支持 支持

requestPermissionsFromUser9+

requestPermissionsFromUser(context: Context, permissionList: Array<Permissions>, requestCallback: AsyncCallback<PermissionRequestResult>) : void

用于拉起弹框请求用户授权。使用callback异步回调。

支持平台: Android、iOS

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Security.AccessToken

参数:

参数名 类型 必填 说明 Android平台 iOS平台
context Context 该参数为请求权限的UIAbility的UIAbilityContext。 支持 支持
permissionList Array<Permissions> 权限名列表,合法的权限名取值可在系统权限定义列表中查询。 支持 支持
callback AsyncCallback<PermissionRequestResult> 回调函数,返回接口调用是否成功的结果。 支持 支持

错误码:

错误码ID 错误信息 Android平台 iOS平台
12100001 The permissionList parameter is invalid. 支持 支持

示例:

import { abilityAccessCtrl, Context, PermissionRequestResult, common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
let context: Context = this.getUIContext().getHostContext() as common.UIAbilityContext;
try {
atManager.requestPermissionsFromUser(context, ['ohos.permission.CAMERA'], (err: BusinessError, data: PermissionRequestResult) => {
  if (err) {
    console.error(`requestPermissionsFromUser fail, err->${JSON.stringify(err)}`);
  } else {
    console.info('data:' + JSON.stringify(data));
    console.info('data permissions:' + data.permissions);
    console.info('data authResults:' + data.authResults);
  }
});
} catch(err) {
console.error(`catch err->${JSON.stringify(err)}`);
}

requestPermissionsFromUser9+

requestPermissionsFromUser(context: Context, permissionList: Array<Permissions>) : Promise<PermissionRequestResult>

用于拉起弹框请求用户授权。使用promise异步回调。

支持平台: Android、iOS

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Security.AccessToken

参数:

参数名 类型 必填 说明 Android平台 iOS平台
context Context 请求权限的UIAbility的UIAbilityContext。 支持 支持
permissionList Array<Permissions> 需要校验的权限名称,合法的权限名取值可在系统权限定义列表中查询。 支持 支持

返回值:

类型 说明 Android平台 iOS平台
Promise<PermissionRequestResult> 返回一个Promise,包含接口的结果。 支持 支持

错误码:

错误码ID 错误信息 Android平台 iOS平台
12100001 The permissionList parameter is invalid. 支持 支持

示例:

import { abilityAccessCtrl, Context, PermissionRequestResult, common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let atManager = abilityAccessCtrl.createAtManager();
try {
let context: Context = this.getUIContext().getHostContext() as common.UIAbilityContext;
atManager.requestPermissionsFromUser(context, ["ohos.permission.CAMERA"]).then((data) => {
  console.info('data:' + JSON.stringify(data));
  console.info('data permissions:' + data.permissions);
  console.info('data authResults:' + data.authResults);
}).catch((err: BusinessError) => {
    console.error("data:" + JSON.stringify(err));
})
} catch(err) {
console.error(`catch err->${JSON.stringify(err)}`);
}