应用的等级可以分为以下三个等级,等级依次提高。
APL级别 | 说明 | 大白话 |
normal | 默认情况下,应用的APL等级都为normal等级。 | 都能用 |
system_basic | 该等级的应用服务提供系统基础服务。 | 要签名证书 |
system_core | 该等级的应用服务提供操作系统核心能力。 仅对系统应用开放 | 不开放 |
检查用户授权:
- 创建程序访问控制管理器atManager。
- 同步获取当前应用的bundleInfo信息。
- 从bundleInfo中提取tokenID。
- 使用atManager校验tokenID是否包含每个所需权限,返回校验结果数组。
- 检查所有权限是否均为授予状态(abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED),是则返回true,否则返回false。
import { abilityAccessCtrl, bundleManager, Permissions } from '@kit.AbilityKit';
// 检查是否授权
checkPermissions(permissions: Permissions[]) {
// 程序访问控制管理
const atManager = abilityAccessCtrl.createAtManager();
// 获取 bundle 信息
const bundleInfo = bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION)
// 提取 tokenID 标识
const tokenID = bundleInfo.appInfo.accessTokenId
// 校验应用是否被授予权限
const authResults = permissions.map((item) => atManager.checkAccessTokenSync(tokenID, item))
// 返回是否已授权结果
return authResults.every(v => v === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED)
}