声明ACL权限
当应用在申请权限来访问必要的资源时,发现部分权限的等级比应用APL等级高,开发者可以选择通过ACL方式来解决等级不匹配的问题。
举例说明,如果应用需要使用全局悬浮窗,需要申请
ohos.permission.SYSTEM_FLOAT_WINDOW
权限,该权限属于system_basic等级。如果应用需要截取屏幕图像,则需要申请ohos.permission.CAPTURE_SCREEN权限,该权限属于system_core等级。此时,normal应用需要跨级别申请该权限。
本节提供两种方式供应用调试阶段使用。两种方式均不可用于发布上架应用市场,如果需要开发商用版本的应用,请在对应的应用市场进行发布证书和签名文件的申请。
- 方式一:通过DevEco Studio完成ACL方式跨级别申请权限。
- 方式二:直接修改HarmonyAppProvision配置文件。
1.查看项目中OpenHarmonySdk路径
2.找到UnsgnedReleasedProfileTemplate文件或者UnsgnedDebugProfileTemplate文件。
文件路径在:\9\toolchains\lib
3.打开文件,修改 “acls” > “allowed-acls” 字段。
"acls":{
"allowed-acls":[
"ohos.permission.SYSTEM_FLOAT_WINDOW",
"ohos.permission.GET_NETWORK_INFO"
]
},
4.重新进行应用签名