HarmonyOS 判断权限是否开启, 现在判断方法属于异步,是否有同步的判断权限方法
是否有同步判断权限方法?下列是异步的:
async checkPermissions(permissions: Array<Permissions>): Promise<boolean> {
let grantStatus: abilityAccessCtrl.GrantStatus = await this.checkAccessToken(permissions);
if (grantStatus === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) {
// 已经授权,可以继续访问目标操作
return true;
} else {
return false;
}
}
async checkAccessToken(permissions: Array<Permissions>): Promise<abilityAccessCtrl.GrantStatus> {
let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
let grantStatus: abilityAccessCtrl.GrantStatus = abilityAccessCtrl.GrantStatus.PERMISSION_DENIED;
// 获取应用程序的accessTokenID
let tokenId: number = 0;
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) {
let err: BusinessError = error as BusinessError;
console.error(`Failed to get bundle info for self. Code is ${err.code}, message is ${err.message}`);
}
// 校验应用是否被授予权限
try {
for (let index = 0; index < permissions.length; index++) {
grantStatus = await atManager.checkAccessToken(tokenId, permissions[index]);
}
} catch (error) {
let err: BusinessError = error as BusinessError;
console.error(`Failed to check access token. Code is ${err.code}, message is ${err.message}`);
}
return grantStatus;
}
- 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.
需求是同步判断,获取到权限是否开启,同步返回生成json返回给服务器。
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS 判断是否有拨打电话权限
1034浏览 • 1回复 待解决
HarmonyOS 是否有api可以判断用户是否授予某项权限
1632浏览 • 1回复 待解决
HarmonyOS 在权限判断中,是否可以判断用户尚未进行过权限决定
886浏览 • 1回复 待解决
我在请求位置权限前先判断是否申请了位置权限
2979浏览 • 1回复 待解决
HarmonyOS权限判断文档
1189浏览 • 1回复 待解决
如何根据fd对应的mode来判断是否有对应的操作权限
1060浏览 • 1回复 待解决
HarmonyOS 有没有判断类或者库是否存在的方法
675浏览 • 1回复 待解决
HarmonyOS 怎么判断是否有网络?
812浏览 • 1回复 待解决
后台弹窗权限怎么判断?
5892浏览 • 1回复 待解决
HarmonyOS 怎么判断是否可以使用setSpecificSystemBarEnabled()这个方法
829浏览 • 1回复 待解决
HarmonyOS 如何判断无障碍模式是否开启?
1299浏览 • 1回复 待解决
HarmonyOS 是否有判断移动数据是否打开的api
316浏览 • 0回复 待解决
HarmonyOS 有没什么高效判断undefinded的方法?
621浏览 • 1回复 待解决
HarmonyOS 有方法可以判断Search这个控件当前是否有焦点或者有光标吗
783浏览 • 1回复 待解决
HarmonyOS 是否有方法判断startAbility 隐式启动schema是否能打开
1047浏览 • 1回复 待解决
HarmonyOS Web组件UserAgent判断方法
745浏览 • 1回复 待解决
如何判断APP是否是第一次请求权限?
1137浏览 • 1回复 待解决
HarmonyOS 如何判断当前设备是否开启无障碍朗读功能
1033浏览 • 1回复 待解决
HarmonyOS有没有简单的方法判断当前线程是否为主线程?
1489浏览 • 1回复 待解决
HarmonyOS 怎么判断网络是否链接? 判断有没有网络
922浏览 • 1回复 待解决
求助镜像语言环境判断方法?
6324浏览 • 1回复 待解决
HarmonyOS 判断网络是否连接
574浏览 • 1回复 待解决
HarmonyOS 判断wantUri是否合法
437浏览 • 1回复 待解决
HarmonyOS ArkTS中如何判断某个类的实例是否实现了某个方法
818浏览 • 1回复 待解决
如何判断其他单个app是否安装? api11 无相关方法
1641浏览 • 1回复 待解决
可以使用verifyAccessTokenSync这个api可以实现想要的同步效果,参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-abilityaccessctrl-V5#verifyaccesstokensync9