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

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


HarmonyOS
2024-08-05 18:52:37
浏览
收藏 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; //未授权
  }
}
分享
微博
QQ
微信
回复
2024-08-05 23:11:41
相关问题
如何申请组合授权权限
122浏览 • 1回复 待解决
HarmonyOS 相册权限检查、申请问题
223浏览 • 1回复 待解决
如何向用户请求授权广告跟踪权限
114浏览 • 1回复 待解决
鸿蒙是否有预授权机制?
3143浏览 • 1回复 待解决
是否支持动态授权,你知道多少?
2029浏览 • 1回复 待解决
如何检查key是否存在于Redis中?
2755浏览 • 1回复 待解决
监听pdf是否已经滑动到最底部失败
1415浏览 • 1回复 待解决
HarmonyOS判断Object中是否含有某个属性
169浏览 • 1回复 待解决
定位授权 直接提示用户拒绝授权
103浏览 • 1回复 待解决
如何判断某个应用是否为系统应用
1776浏览 • 1回复 待解决
如何判断JS对象中是否存在某个
1909浏览 • 1回复 待解决
检查字符串是否以给定的字符串开头
182浏览 • 1回复 待解决