0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发Ability Kit程序框架服务:选择申请权限的方式

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-07-01 09:50 次阅读

选择申请权限的方式

应用在访问数据或者执行操作时,需要评估该行为是否需要应用具备相关的权限。如果确认需要目标权限,则需要在应用安装包中申请目标权限。

每一个权限的权限等级、授权方式不同,申请权限的方式也不同,开发者在申请权限前,需要先根据以下流程判断应用能否申请目标权限。

zh-cn_image_0000001698506718

上图的数字标注,请参考以下说明:

  • 标注1:应用APL等级与权限等级的匹配关系请参考[APL等级说明]。
  • 标注2:权限的授权方式分为user_grant(用户授权)和system_grant(系统授权),具体请参考[授权方式说明]。
  • 开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
    • 如果目标权限是system_grant类型,开发者在进行权限申请后,系统会在安装应用时自动为其进行权限预授予,开发者不需要做其他操作即可使用权限。
    • 在应用需要获取user_grant权限时,请完成以下步骤:
      1. 在配置文件中,声明应用需要请求的权限。
      2. 将应用中需要申请权限的目标对象与对应目标权限进行关联,让用户明确地知道,哪些操作需要用户向应用授予指定的权限。
      3. 运行应用时,在用户触发访问操作目标对象时应该调用接口,精准触发动态授权弹框。该接口的内部会检查当前用户是否已经授权应用所需的权限,如果当前用户尚未授予应用所需的权限,该接口会拉起动态授权弹框,向用户请求授权。
      4. 检查用户的授权结果,确认用户已授权才可以进行下一步操作。
  • 标注3:应用可以通过ACL(访问控制列表)方式申请高级别的权限。

应用可根据目标权限的开放范围、授权方式,参考以下操作路径申请对应权限。

normal等级应用申请权限的方式

权限类型授权方式操作路径
[所有应用可申请]system_grant[声明权限] > 访问接口
[所有应用可申请]user_grant[声明权限] > [向用户申请授权] > 访问接口
[允许normal等级应用通过ACL跨级申请]system_grant[声明权限] > [声明ACL权限] > 访问接口
[允许normal等级应用通过ACL跨级申请]user_grant[声明权限] > [声明ACL权限]> [向用户申请授权] > 访问接口

说明:

  • 如果system_basic等级的权限,ACL使能为false,则normal等级应用无法申请该权限。
  • 当前可通过DevEco Studio完成[ACL方式跨级别申请权限],但该方法仅用于应用调试阶段使用,不可用于发布上架应用市场。如果需要开发商用版本的应用,请在对应的应用市场进行发布证书和Profile文件的申请。

system_basic等级应用申请权限的方式

权限等级授权方式ACL使能操作路径
normal、system_basicsystem_grant-[声明权限]> 访问接口
normal、system_basicuser_grant-[声明权限] > [向用户申请授权]> 访问接口
system_coresystem_granttrue[声明权限]> [声明ACL权限]> 访问接口
system_coreuser_granttrue[声明权限] > [声明ACL权限] > [向用户申请授权] > 访问接口HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿

搜狗高速浏览器截图20240326151547.png

如果应用需要将自身的APL等级声明为system_basic及以上,在开发应用安装包时,需要修改应用的HarmonyAppProvision配置文件即SDK目录下的“Toolchains / _{Version} _/ lib / UnsgnedReleasedProfileTemplate.json”文件),并重新进行应用签名。

修改方式:

HarmonyAppProvision配置文件示例如下所示,修改"bundle-info" > "apl" 字段。

"bundle-info" : {
    // ...
    "apl": "system_basic",
    // ...
},

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

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8593

    浏览量

    151123
  • 框架
    +关注

    关注

    0

    文章

    403

    浏览量

    17481
  • 鸿蒙
    +关注

    关注

    57

    文章

    2350

    浏览量

    42842
收藏 人收藏

    评论

    相关推荐

    HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)综述

    一、综述 Intents Kit(意图框架服务)是HarmonyOS级的意图标准体系 ,意图连接了应用/元服务内的业务功能。 意图框架能帮
    发表于 11-28 10:43

    鸿蒙原生开发手记:01-元服务开发

    简介 元服务鸿蒙中的一种轻量应用形态,无需下载,直接运行。类似于微信小程序,但与小程序不同的是,元服务更加轻量。 元
    发表于 11-14 17:28

    鸿蒙开发Ability Kit程序访问控制:向用户申请单次授权

    受限开放的权限通常是不允许三方应用申请的。当应用在申请权限来访问必要的资源时,发现部分权限的等级比应用APL等级高,
    的头像 发表于 07-02 17:48 505次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b>访问控制:向用户<b class='flag-5'>申请</b>单次授权

    鸿蒙开发Ability Kit程序访问控制:申请使用受限权限

    受限开放的权限通常是不允许三方应用申请的。当应用在申请权限来访问必要的资源时,发现部分权限的等级比应用APL等级高,
    的头像 发表于 07-02 17:34 449次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b>访问控制:<b class='flag-5'>申请</b>使用受限<b class='flag-5'>权限</b>

    鸿蒙开发Ability Kit程序访问控制:对所有应用开放

    申请目标权限前,建议开发者先阅读[申请应用权限],对权限的工作流程有基本了解后,再结合以下
    的头像 发表于 07-02 14:32 463次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b>访问控制:对所有应用开放

    鸿蒙开发Ability Kit程序框架服务:向用户申请单次授权

    基于授权最小化的原则,防止应用获取和滥用用户数据,针对部分应用敏感权限,在弹窗向用户申请授权时,新增“允许本次使用”的授权选项。
    的头像 发表于 07-01 14:34 413次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>:向用户<b class='flag-5'>申请</b>单次授权

    鸿蒙开发Ability Kit程序框架服务:应用权限管控概述 程序访问控制

    系统提供了一种允许应用访问系统资源(如:通讯录等)和系统能力(如:访问摄像头、麦克风等)的通用权限访问方式,来保护系统数据(包括用户个人数据)或功能,避免它们被不当或恶意使用。
    的头像 发表于 07-01 10:21 466次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>:应用<b class='flag-5'>权限</b>管控概述 <b class='flag-5'>程序</b>访问控制

    鸿蒙开发Ability Kit程序框架服务:声明权限

    应用在申请权限时,需要在项目的配置文件中,逐个声明需要的权限,否则应用将无法获取授权。
    的头像 发表于 07-01 09:22 339次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>:声明<b class='flag-5'>权限</b>

    鸿蒙开发Ability Kit程序框架服务:向用户申请授权

    当应用需要访问用户的隐私信息或使用系统能力时,例如获取位置信息、访问日历、使用相机拍摄照片或录制视频等,应该向用户请求授权,这部分权限是user_grant权限
    的头像 发表于 07-01 09:18 594次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>:向用户<b class='flag-5'>申请</b>授权

    鸿蒙原生应用元服务开发-位置服务申请权限

    申请位置权限开发指导 场景概述 应用在使用位置服务系统能力前,需要检查是否已经获取用户授权访问设备位置信息。如未获得授权,可以向用户申请需要
    发表于 06-18 15:27

    鸿蒙Ability Kit程序框架服务)【应用启动框架AppStartup】

    `AppStartup`提供了一种更加简单高效的初始化组件的方式,支持异步初始化组件加速应用的启动时间。使用启动框架应用开发者只需要分别为待初始化的组件实现`AppStartup`提供
    的头像 发表于 06-10 18:38 705次阅读

    鸿蒙Ability Kit程序框架服务)【Ability与ServiceExtensionAbility通信】

    本示例展示通过[IDL的方式]和 [@ohos.rpc] 等接口实现了Ability与ServiceExtensionAbility之间的通信。
    的头像 发表于 06-05 09:28 491次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>)【<b class='flag-5'>Ability</b>与ServiceExtensionAbility通信】

    鸿蒙Ability Kit程序框架服务)【Ability内页面间的跳转】

    基于Stage模型下的Ability开发,实现Ability内页面间的跳转和数据传递。
    的头像 发表于 06-03 20:43 302次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>)【<b class='flag-5'>Ability</b>内页面间的跳转】

    鸿蒙应用模型:【Ability Kit】简介

    Ability Kit程序框架服务)提供了应用程序开发
    的头像 发表于 05-29 14:41 641次阅读
    <b class='flag-5'>鸿蒙</b>应用模型:【<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>】简介

    鸿蒙开发接口Ability框架:【 (Context模块)】

    Context模块提供了ability或application的上下文的能力,包括允许访问特定于应用程序的资源、请求和验证权限等。
    的头像 发表于 05-13 16:04 717次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>接口<b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【 (Context模块)】