权限访问控制管理,如何防止用户未正常申请权限,造成应用使用过程中权限报错。
权限访问控制管理
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
Stage模型中如何申请网络访问权限
1898浏览 • 1回复 待解决
HarmonyOS申请用户位置权限问题
326浏览 • 1回复 待解决
BundleInfo.appInfo.accessTokenId使用过程中是否会发生变化
1901浏览 • 1回复 待解决
申请外部存储读写权限在鸿蒙中需要申请哪些权限
1981浏览 • 1回复 待解决
HarmonyOS 华为应用测试问题--权限申请告知权限使用目的问题
246浏览 • 0回复 待解决
api 9 申请网络权限报错
3428浏览 • 1回复 待解决
如何在鸿蒙应用中实现动态权限管理?
29浏览 • 0回复 待解决
HarmonyOS 蓝牙权限的问题, 未授权蓝牙权限后,蓝牙权限如何开启
363浏览 • 1回复 待解决
如何唤起应用的系统权限管理页和查看对应权限状态?
135浏览 • 0回复 待解决
如何申请组合授权权限?
303浏览 • 1回复 待解决
用户手动关闭定位权限之后,回到app再次申请定位权限时,不弹申请弹框了
324浏览 • 1回复 待解决
app如何申请位置权限?
308浏览 • 1回复 待解决
如何申请广告跟踪权限
314浏览 • 1回复 待解决
页面路由的用户权限验证控制与拦截
61浏览 • 1回复 待解决
Web组件如何申请位置权限?
311浏览 • 1回复 待解决
在内存管理数据结构比如使用ArrayBuffer、Buffer、Uint8Array等数据结构使用过程中,在使用效率上进行纠结
1954浏览 • 1回复 待解决
如何跳转至设置-权限管理页-指定应用
2218浏览 • 1回复 待解决
权限申请的弹窗点击禁止之后,再次申请权限时无法弹出
564浏览 • 1回复 待解决
HarmonyOS权限申请问题
293浏览 • 1回复 待解决
权限申请ACL疑问 ,HarmonyOS里面需申请ohos.permission.PRIVACY_WINDOW权限
2203浏览 • 1回复 待解决
PolarDB权限管理是什么?
2544浏览 • 1回复 待解决
求告知如何申请广告跟踪权限
247浏览 • 1回复 待解决
Web中网页如何申请位置权限?
416浏览 • 1回复 待解决
申请权限ohos.permission.CAMERA以使用相机时,可以用camera picker替代,不用申请权限吗?
49浏览 • 1回复 待解决
HarmonyOS使用select选择相册是否需要申请权限
231浏览 • 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。