2

【小源笔记】第六期 | 解决应用申请权限失败导致安装报错问题

 1 year ago
source link: https://blog.51cto.com/harmonyos/5929578
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【小源笔记】第六期 | 解决应用申请权限失败导致安装报错问题

推荐 原创

开源基础软件社区官方 2022-12-12 14:10:04 ©著作权

文章标签 hap 权限申请 文章分类 HarmonyOS 编程语言 阅读数253

笔者最近在开发应用时遇到install failed due to grant request permissions failed,报错信息大概意思为由于申请权限失败导致安装失败

【小源笔记】第六期 | 解决应用申请权限失败导致安装报错问题_权限申请

查询相关资料得知,应用APL等级有三个,分别是:

APL级别 说明
system_core等级 该等级的应用服务提供操作系统核心能力。
system_basic等级 该等级的应用服务提供系统基础服务。
normal等级 普通应用。

默认情况下,应用的APL等级都为normal等级。

如果应用需要将自身的APL等级声明为system_basic及以上的APL等级,在开发应用安装包时,要修改应用的Profile文件。

1.首先根据参考资料[2] 查询应用申请的权限等级,例如笔者这里在config.json文件申请了以下权限

"reqPermissions": [
  {
    "name": "ohos.permission.CAPTURE_SCREEN"
  }
]

查询应用权限列表得到该权限的级别为system_core

权限名 权限级别 授权方式 ACL使能 权限说明
ohos.permission.CAPTURE_SCREEN system_core system_grant TRUE 允许应用截取屏幕图像。

2.打开编译当前应用的SDK版本对应的UnsgnedReleasedProfileTemplate.json文件

【小源笔记】第六期 | 解决应用申请权限失败导致安装报错问题_hap_02

这里有两种修改方式:

方式一:

修改apl字段的值为应用申请权限的最高等级(system_core>system_basic>normal),高等级的应用可以申请该级别及以下的的权限

{
	...
	"bundle-info":{
		"developer-id":"OpenHarmony",
		...
		"apl":"system_core",
		"app-feature":"hos_system_app"
	},
	...
}

方式二:

由上面查询的信息得知,权限的ACL使能为TRUE,这意味着我们可以通过ACL方式申请

将所需申请的权限中高于当前应用APL等级的,添加到allowed-acls列表中

{
	...
	"bundle-info":{
		"developer-id":"OpenHarmony",
		...
		"apl":"normal",
		"app-feature":"hos_system_app"
	},
	"acls":{
		"allowed-acls":[
			"ohos.permission.CAPTURE_SCREEN"
		]
	},
	...
}

3.完成以上步骤后,打开DevEco Studio工具进行自动化签名即可,如之前已签过名,需将自动签名的文件全部删除并将signingConfigs字段清空,这样自动签名时才会根据上面修改的签名证书模板生成新的证书

【小源笔记】第六期 | 解决应用申请权限失败导致安装报错问题_hap_03
【小源笔记】第六期 | 解决应用申请权限失败导致安装报错问题_hap_04
【小源笔记】第六期 | 解决应用申请权限失败导致安装报错问题_权限申请_05

完成后打包安装即可,如遇到以下install sign info inconsistent报错问题,只需将原来设备上安装的应用卸载再安装即可

【小源笔记】第六期 | 解决应用申请权限失败导致安装报错问题_权限申请_06

对于权限等级开发者应根据实际情况修改对应的应用APL等级,为了系统的安全切勿滥用权限,例如笔者上面的情况推荐的做法是方式二

[1] 应用APL等级说明

[2] 应用权限列表

【小源笔记】为笔者开发过程中的一些经验分享,旨在解决官方文档过于晦涩难懂或者示例代码不够详细的问题,同时方便笔者日后回顾以及其他开发者更快上手,欢迎评论留言~

往期推荐:

 【小源笔记】第三期 | JS SDK下载失败?那你可能是没配置npm代理
 【小源笔记】第四期 | Stage模型设置应用启动首页面
 【小源笔记】第五期 | 如何将应用内置到OpenHarmony系统中

本文作者: Haoc_小源同学

 想了解更多关于开源的内容,请访问:​

 ​51CTO 开源基础软件社区​

 ​https://ost.51cto.com/#bkwz​


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK