检查某个权限是否已经授权。

检查某个权限是否已经授权。


HarmonyOS
2024-08-05 18:52:37
1350浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
NingJ
/**
 * 检查是否授权
 * @param permission 待检查权限
 * @returns 授权状态
 */
async checkAccessToken(permission: Permissions): Promise<abilityAccessCtrl.GrantStatus> {
  let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
  let grantStatus: abilityAccessCtrl.GrantStatus = abilityAccessCtrl.GrantStatus.PERMISSION_DENIED;
  let tokenId: number = 0; //获取应用程序的accessTokenID
  try {
    let bundleInfo: bundleManager.BundleInfo =
      await bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);
    let appInfo: bundleManager.ApplicationInfo = bundleInfo.appInfo;
    tokenId = appInfo.accessTokenId;
  } catch (error) {
    const err: BusinessError = error as BusinessError;
    // ToastUtil.showToast('获取应用信息失败:' + err.message);
  }
  //校验应用是否被授予权限
  try {
    grantStatus = await atManager.checkAccessToken(tokenId, permission);
  } catch (error) {
    const err: BusinessError = error as BusinessError;
    // ToastUtil.showToast('校验授权信息失败:' + err.message);
  }
  return grantStatus;
}

async checkPermissions(permissions: Permissions): Promise<boolean> {
  let grantStatus: abilityAccessCtrl.GrantStatus = await this.checkAccessToken(permissions);
  if (grantStatus === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) { //判断是否授权
    return true; //已经授权
  } else {
    return false; //未授权
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
分享
微博
QQ
微信
回复
2024-08-05 23:11:41


相关问题
如何申请组合授权权限
1207浏览 • 1回复 待解决
HarmonyOS 相册权限检查、申请问题
2170浏览 • 1回复 待解决
HarmonyOS webview权限授权被拒绝
908浏览 • 1回复 待解决
怎么清除已经申请的权限
293浏览 • 1回复 已解决
如何向用户请求授权广告跟踪权限
1022浏览 • 1回复 待解决
鸿蒙是否有预授权机制?
4117浏览 • 1回复 待解决
HarmonyOS 检查其他应用是否安装
856浏览 • 1回复 待解决
是否支持动态授权,你知道多少?
3327浏览 • 1回复 待解决
如何检查key是否存在于Redis中?
3550浏览 • 1回复 待解决
怎么判断某个customDialog是否弹出?
875浏览 • 1回复 待解决