HarmonyOS 获取拒绝的权限
用户获取相册权限时,点击拒绝后,用户再次点击怎么获取当前权限的状态
现在就是用以下方法实现,但是用户拒绝后,再次点击上传没有反应
private async openGallery() {
let context = getContext(this) as common.UIAbilityContext;
let atManager = abilityAccessCtrl.createAtManager();
let info = await bundleManager.getBundleInfoForSelf(0);
LogUtil.error(this.TAG,'用户权限信息: ',JSON.stringify(info))
if (info && info.appInfo) {
let result = atManager.verifyAccessTokenSync(info.appInfo.accessTokenId, "ohos.permission.READ_MEDIA");
if (abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED == result) {
console.log("has permission")
}
} else {
atManager.requestPermissionsFromUser(context, ["ohos.permission.READ_MEDIA"], (error, result) => {
if (result) {
console.log("result: " + JSON.stringify(result));
if (result.authResults[0] == abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) {
// 用户授予权限
// 打开相册
this.openGalleryInternal();
} else {
// 用户拒绝权限
LogUtil.error(this.TAG, '用户拒绝授权')
}
} else {
LogUtil.error(this.TAG, '请求异常-',JSON.stringify(error))
}
});
}
}
- 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.
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS NEXT开发中如何获取拒绝的权限?
323浏览 • 0回复 待解决
HarmonyOS webview权限授权被拒绝
925浏览 • 1回复 待解决
HarmonyOS 权限申请拒绝问题
985浏览 • 1回复 待解决
HarmonyOS 系统权限被拒绝过一次的这个状态如何获取?
978浏览 • 1回复 待解决
HarmonyOS 调用短信服务的api发现权限拒绝
783浏览 • 1回复 待解决
读取本地json 文件提示权限拒绝
4118浏览 • 1回复 待解决
HarmonyOS ohos.permission.APP_TRACKING_CONSENT权限获取未弹窗,直接是拒绝
709浏览 • 1回复 待解决
HarmonyOS 申请应用跟踪权限被直接拒绝
1115浏览 • 1回复 待解决
HarmonyOS 在用户拒绝应用申请系统权限的情况下,怎么判断该权限已经申请过而且被用户拒绝过
1038浏览 • 1回复 待解决
HarmonyOS 在申请相机权限拒绝后仍能打开相机
772浏览 • 1回复 待解决
用户拒绝敏感权限后,如何优雅降级功能?
278浏览 • 0回复 待解决
HarmonyOS connection.getAllNetsSync()在明确已经声明权限的情况下提示权限拒绝
702浏览 • 1回复 待解决
有api可以知道用户已经拒绝过某权限么
1433浏览 • 1回复 待解决
如何申请用户存储权限并处理拒绝场景?
258浏览 • 0回复 待解决
在 HarmonyOS 中,如果用户拒绝了某个应用的权限请求,应用应该如何处理?
830浏览 • 0回复 待解决
HarmonyOS 权限获取界面
670浏览 • 1回复 待解决
HarmonyOS 获取权限状态的api是否能获取到是否询问过该权限
728浏览 • 1回复 待解决
对于获取权限的api的问题
2451浏览 • 1回复 待解决
#鸿蒙通关秘籍#event.handler.grant请求权限后被拒绝要如何得知?
773浏览 • 0回复 待解决
HarmonyOS 如何获取用户相应权限,如通知权限、位置权限等
1328浏览 • 1回复 待解决
获取蓝牙权限后进入应用权限管理页面并没有获取到蓝牙权限,不确认是HarmonyOS问题还是调用的蓝牙权限不对
1425浏览 • 1回复 待解决
应用获取不同权限demo
1556浏览 • 1回复 待解决
Data Guard Kit权限获取
2542浏览 • 1回复 待解决
动态申请ACCESS_DISTRIBUTED_NETWORK_STATE权限时,用户拒绝后无法再次触发弹窗,如何处理?
337浏览 • 1回复 待解决
约束与限制
每次执行需要目标权限的操作时,应用都必须检查自己是否已经具有该权限。
如需检查用户是否已向您的应用授予特定权限,可以使用checkAccessToken()函数,此方法会返回PERMISSION_GRANTED或PERMISSION_DENIED。具体示例可参考下文。
每次访问受目标权限保护的接口之前,都需要使用requestPermissionsFromUser()接口请求相应的权限。
用户可能在动态授予权限后通过系统设置来取消应用的权限,因此不能将之前授予的授权状态持久化。
user_grant权限授权要基于用户可知可控的原则,需要应用在运行时主动调用系统动态申请权限的接口,系统弹框由用户授权,用户结合应用运行场景的上下文,识别出应用申请相应敏感权限的合理性,从而做出正确的选择。
系统不鼓励频繁弹窗打扰用户,如果用户拒绝授权,二次申请授权已经提供了接口,可以跳转到设置页面引导用户授权,
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/request-user-authorization-second-V5
相关参考指南链接:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/request-user-authorization-V5