• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 申请受限权限
2
3<!--Kit: Ability Kit-->
4<!--Subsystem: Security-->
5<!--Owner: @xia-bubai-->
6<!--Designer: @linshuqing; @hehehe-li-->
7<!--Tester: @leiyuqian-->
8<!--Adviser: @zengyawen-->
9
10受限权限通常不允许第三方应用申请。当应用需要访问必要资源时,如果发现某些权限的等级高于应用权限等级(APL),开发者可以通过ACL方式来解决等级不匹配的问题,从而使用受限权限。
11
12举例说明:应用需要使用全局悬浮窗时,需申请ohos.permission.SYSTEM_FLOAT_WINDOW权限(system_basic等级);需要截取屏幕图像时,需申请ohos.permission.CAPTURE_SCREEN权限(system_core等级)。此时,normal应用需要跨级别申请该权限。
13
14本节提供两种调试方法。这两种方式均不可用于发布上架应用市场。如需发布商用版本,请在对应的应用市场申请发布证书和签名文件。
15
16- 方式一:通过DevEco Studio完成[ACL方式跨级别申请权限](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-signing)17
18- 方式二:直接修改HarmonyAppProvision配置文件。
19  1. 打开HarmonyAppProvision配置文件,即SDK目录下的“Sdk/openharmony/_{Version} _/toolchains /lib/UnsgnedReleasedProfileTemplate.json”文件。
20  2. 在配置文件中添加需要使用的受限权限。
21
22      - 不携带权限数据的受限权限可通过修改 "acls" &gt; "allowed-acls" 字段来添加。
23      - 携带权限数据的受限权限可通过修改 "app-services-capabilities" 字段添加。
24
25        ```json
26        {
27          // ...
28          "acls":{
29            "allowed-acls":[
30              "ohos.permission.WRITE_AUDIO",
31              "ohos.permission.CAPTURE_SCREEN"
32            ]
33          },
34          "app-services-capabilities": {
35              "ohos.permission.ACCESS_DDK_DRIVERS": "..."
36          }
37        }
38        ```
39
40  3. 重新对应用进行签名。
41