权限访问控制管理,如何防止用户未正常申请权限,造成应用使用过程中权限报错。
权限访问控制管理
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
Stage模型中如何申请网络访问权限
719浏览 • 1回复 待解决
申请外部存储读写权限在鸿蒙中需要申请哪些权限
486浏览 • 1回复 待解决
api 9 申请网络权限报错
2083浏览 • 1回复 待解决
BundleInfo.appInfo.accessTokenId使用过程中是否会发生变化
632浏览 • 1回复 待解决
如何跳转至设置-权限管理页-指定应用
892浏览 • 1回复 待解决
权限申请ACL疑问 ,HarmonyOS里面需申请ohos.permission.PRIVACY_WINDOW权限
363浏览 • 1回复 待解决
如何申请设备上的媒体读写权限
768浏览 • 1回复 待解决
PolarDB权限管理是什么?
1471浏览 • 1回复 待解决
我在请求位置权限前先判断是否申请了位置权限
841浏览 • 1回复 待解决
如何在使用权限对应的功能时,以同步告知的方式向用户明示权限使用目的
498浏览 • 1回复 待解决
动态申请权限能否添加描述
223浏览 • 1回复 待解决
在内存管理数据结构比如使用ArrayBuffer、Buffer、Uint8Array等数据结构使用过程中,在使用效率上进行纠结
509浏览 • 1回复 待解决
关于MySQL用户权限的问题
1210浏览 • 1回复 待解决
申请拨打电话权限无效
4660浏览 • 1回复 待解决
在系统设置修改了应用权限,应用能否监听到权限变化
650浏览 • 1回复 待解决
向用户申请授予权限但被用户拒绝后,如何处理才能避免应用二次进入时崩溃
1039浏览 • 1回复 待解决
权限的申请与校验,该如何处理啊?
396浏览 • 1回复 待解决
存储权限,实现保存图片到相册的功能,需要WRITE_IMAGEVIDEO权限,怎么申请
191浏览 • 1回复 待解决
用户禁止了应用弹框权限,如何再通过requestPermissionFromUser调用
219浏览 • 1回复 待解决
应用获取不同权限demo
423浏览 • 1回复 待解决
如何管理PolarDB数据库集群账号权限?
1577浏览 • 1回复 待解决
关于权限申请的配置文件声明
458浏览 • 1回复 待解决
apache下文件夹没有访问权限
920浏览 • 0回复 待解决
应用申请LOCATION位置信息权限为什么没有弹窗
1006浏览 • 1回复 待解决
关于获取应用列表权限问题?
1982浏览 • 1回复 待解决
应用申请某项权限时可能存在被拒绝情况,当再次打开应用不会再次申请该权限,需要用户前往“设置-隐私-权限管理”开启相关权限。这篇文档主要介绍如何防止用户未正常申请权限,造成应用使用过程中权限报错。
1.
在使用权限前,检测权限。
首先,我们需要判断自己是否拥有权限。判断时间点为执行需要权限的对应操作前。如我们在获取媒体库文件时,需要判断是否拥有ohos.permission.READ_MEDIA权限。我们可以调用atManager.verifyAccessTokenSync()方法检查授权状态,返回的结果为GrantStatus中两个常量:PERMISSION_GRANTED(已授权)和PERMISSION_DENIED(未授权)。verifyAccessTokenSync()方法需要传入两个参数,分别是应用的身份标识tokenId和检验权限permissionName。身份标识tokenId在系统应用可以通过bundleManager.getApplicationInfo获取,普通应用可以通过bundleManager.getBundleInfoForSelf获取。
2.已授权的情况下,执行你的原有操作。
当已授权时,就可以执行你原有的操作了。代码如下:
3.未授权的情况下,申请权限或打开系统权限管理
普通应用情况下,如果应用未获得授权,需要用户前往“设置-隐私-权限管理”开启相关权限。示例代码如下:
系统应用情况下,如果应用未获得授权,我们就需要向用户申请授权。可以调用
grantUserGrantedPermission()方法来请求授权。代码如下:
4.user_grant权限预授权
应用在申请user_grant类型的权限默认未授权,需要通过拉起弹框由用户确认是否授予该权限。对于一些预制应用,不希望出现弹窗申请user_grant类型的权限,例如系统相机应用需要使用麦克风 ohos.permission.MICROPHONE等权限,需要对麦克风等权限进行预授权,可以通过预授权的方式完成user_grant类型权限的授权。预置配置文件在设备上的路径为/system/etc/app/install_list_permission.json,设备开机启动时会读取该配置文件,在应用安装会对在文件中配置的user_grant类型权限授权。预授权配置文件字段内容包括bundleName、app_signature和permissions。