当前位置:   article > 正文

HarmonyOS应用开发:权限开发_鸿蒙开发申请权限

鸿蒙开发申请权限

ATM (AccessTokenManager) 是OpenHarmony上基于AccessToken构建的统一的应用权限管理能力。

权限申请使用的工作流程

判断应用能否申请目标权限 

 应用使用权限校验的工作流程

 应用APL等级

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

 权限类型说明

根据授权方式的不同,权限类型可分为system_grant(系统授权)和user_grant(用户授权)。

  • system_grant

    system_grant指的是系统授权类型,在该类型的权限许可下,应用被允许访问的数据不会涉及到用户或设备的敏感信息,应用被允许执行的操作不会对系统或者其他应用产生大的不利影响。

    如果在应用中申请了system_grant权限,那么系统会在用户安装应用时,自动把相应权限授予给应用。应用需要在应用商店的详情页面,向用户展示所申请的system_grant权限列表。

  • user_grant

    user_grant指的是用户授权类型,在该类型的权限许可下,应用被允许访问的数据将会涉及到用户或设备的敏感信息,应用被允许执行的操作可能对系统或者其他应用产生严重的影响。

    该类型权限不仅需要在安装包中申请权限,还需要在应用动态运行时,通过发送弹窗的方式请求用户授权。在用户手动允许授权后,应用才会真正获取相应权限,从而成功访问操作目标对象。

    比如说,在权限定义列表中,麦克风和摄像头对应的权限都是属于用户授权权限,列表中给出了详细的权限使用理由。

    应用需要在应用商店的详情页面,向用户展示所申请的user_grant权限列表。

访问控制列表(ACL)使用说明

CL申请方式须知

开发应用安装包时,需要修改应用的Profile文件,在文件的"acl"字段声明目标的访问控制列表。然后使用hap包签名工具生成证书。

注意:
直接修改应用Profile文件的方式,仅用于应用/服务调试阶段使用,不可用于发布上架应用市场。如果需要开发商用版本的应用,请在对应的应用市场进行发布证书和Profile文件的申请。

  1. {
  2. "acls": {
  3. "allowed-acls": [
  4. "ohos.permission.PERMISSION"
  5. ]
  6. },
  7. }

 HarmonyAppProvision配置文件的说明(profile文件)

HarmonyAppProvision文件包含version-code对象、version-name对象、uuid对象、type对象、issuer对象、validity对象、bundle-info对象、acls对象、permissions对象、debug-info对象等部分组成。

表1 配置文件内部结构说明

属性名称含义数据类型是否必选是否可缺省
version-code表示HarmonyAppProvision文件格式的版本号,取值范围为二进制32位以内的正整数。数值必选不可缺省
version-name表示版本号的文字描述,推荐使用三段数字版本号,如A.B.C。字符串必选不可缺省
uuid表示文件的唯一ID号,用于OEM厂商标识HarmonyAppProvision文件,开源社区版本该属性不做强制要求。字符串必选不可缺省
type表示HarmonyAppProvision文件的类型, 系统预定义的文件类型包括:debug(用于应用调试场景)和release(用于应用发布场景) ,开源社区版本该属性值建议为debug。字符串必选不可缺省
issuer表示HarmonyAppProvision签发者。字符串必选不可缺省
validity表示HarmonyAppProvision文件有效期的信息。参考validity对象内部结构对象必选不可缺省
bundle-info表示应用包以及开发者的信息。参考bundle-info对象内部结构对象必选不可缺省
acls表示授权的acl权限信息。参考acls对象内部结构对象可选不可缺省
permissions表示允许使用的受限敏感权限信息。参考permissions对象内部结构对象可选不可缺省
debug-info表示应用调试场景下的额外信息。参考debug-info对象内部结构对象可选不可缺省

HarmonyAppProvision文件示例:

  1. {
  2. "version-code": 1,
  3. "version-name": "1.0.0",
  4. "uuid": "string",
  5. "type": "debug",
  6. "validity": {
  7. "not-before": 1586422743,
  8. "not-after": 1617958743
  9. },
  10. "bundle-info" : {
  11. "developer-id": "OpenHarmony",
  12. "development-certificate": "Base64 string",
  13. "distribution-certificate": "Base64 string",
  14. "bundle-name": "com.OpenHarmony.app.test",
  15. "apl": "normal",
  16. "app-feature": "hos_normal_app"
  17. },
  18. "acls": {
  19. "allowed-acls": ["string"]
  20. },
  21. "permissions": {
  22. "restricted-permissions": ["string"]
  23. },
  24. "debug-info" : {
  25. "device-id-type": "udid",
  26. "device-ids": ["string"]
  27. },
  28. "issuer": "OpenHarmony"
  29. }

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号