• Home
Name Date Size #Lines LOC

..--

AppScope/22-Oct-2025-3532

entry/22-Oct-2025-1,1861,087

hvigor/22-Oct-2025-3836

screenshots/22-Oct-2025-

.gitignoreD22-Oct-2025156 1313

README.mdD22-Oct-20254.8 KiB8159

build-profile.json5D22-Oct-20251.3 KiB5857

code-linter.json5D22-Oct-2025958 3534

hvigorfile.tsD22-Oct-2025839 225

oh-package.json5D22-Oct-2025809 2624

ohosTest.mdD22-Oct-20252.3 KiB1410

README.md

1# 向用户申请权限
2
3### 介绍
4
5本示例使用@ohos.abilityAccessCtrl,展示了应用申请权限场景。
6
7### 效果预览
8
9| 主页                                 | 授权弹窗                                 | 二次授权弹窗                                         | 二次授权页面                                           |
10| ------------------------------------ | ---------------------------------------- | ---------------------------------------------------- | :----------------------------------------------------- |
11| ![main](screenshots/main.png) | ![dialog](screenshots/dialog.png) | ![seconddialog](screenshots/seconddialog.png) | ![secondability](screenshots/secondability.png) |
12
13使用说明
14
151. 打开应用,点击**检测权限**按钮,出现提示信息“权限未申请”。
16
172. 点击**在Page中申请权限**按钮,跳到Page页面,出现授权弹窗,点击**取消**按钮,返回主页点击**检测权限**按钮,出现提示信息“权限未申请”。
18
193. 点击**在UIAbility中申请权限**按钮,跳到**secondAbility**页面,出现授权弹窗,点击**取消**按钮,出现二次授权弹窗,选择**仅使用期间允许**选项,点击**导航到EntryAbility**按钮返回主页,点击**检测权限**按钮,出现提示信息“未申请精确定位权限”。
20
214. 再次点击**在UIAbility中申请权限** 按钮,跳到**secondAbility**页面,出现授权弹窗,点击**仅使用期间允许**按钮,点击**导航到EntryAbility**按钮返回主页,点击**检测权限**按钮,出现提示信息“权限已申请“。
22
23### 工程目录
24```
25RequsetUserAuthorization
26├──entry/src/main
27│  ├──ets                                       // ets代码区
28│  │  ├──entryability
29│  │  │  └──EntryAbility.ets                    // 程序入口类
30|  |  ├──pages                                  // 页面文件
31│  │  │  └──Index.ets                           // RequsetUserAuthorization主页
32│  │  ├──reqpermissioninui
33│  │  │  └──pages
34│  │  │     └──Index.ets                        // UI申请权限页面
35│  │  ├──secondability
36│  │  │  └──SecondAbility.ets                   // SecondAbility入口
37|  |  ├──secondpages                            // SecondAbility页面文件
38│  │  │  └──Index.ets                           // 二次申请权限页面
39│  │  └──utils                                  // 工具文件
40│  │     └──PermissionUtil.ets                  // 校验权限工具
41|  ├──resources                                 // 资源文件目录
42│  │
43```
44### 具体实现
45
46* 本示例分为权限检测模块、向用户申请权限模块
47  * 权限检测模块
48    * 使用bundleManager接口中getBundleInfoForSelf方法获取应用程序的accessTokenID,根据accessTokenID使用abilityAccessCtrl接口中checkAccessToken方法检测权限是否被申请。
49    * 接口参考:[@ohos.abilityAccessCtrl](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-abilityAccessCtrl.md),[@ohos.bundle.bundleManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-bundleManager.md)
50  * 向用户申请权限模块
51    * 使用abilityAccessCtrl接口中requestPermissionsFromUser方法向用户申请权限,用户拒绝后使用requestPermissionOnSetting方法拉起二次授权功能。
52    * 接口参考:[@ohos.abilityAccessCtrl](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-abilityAccessCtrl.md)
53
54### 相关权限
55
561. 允许应用获取设备位置信息权限:[ohos.permission.LOCATION](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all-user.md#ohospermissionlocation)
57
582. 允许应用获取设备模糊位置信息:[ohos.permission.APPROXIMATELY_LOCATION](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all-user.md#ohospermissionapproximately_location)
59
60### 依赖
61
62不涉及。
63
64### 约束与限制
65
661. 本示例仅支持在标准系统上运行,支持设备:RK3568。
67
682. 本示例为Stage模型,支持API14版本SDK,版本号:(5.0.2.58)。
69
703. 本示例已支持使DevEco Studio 5.0.1 Release (构建版本:5.0.5.306,构建 2024年12月6日)编译运行。
71
72### 下载
73
74如需单独下载本工程,执行如下命令:
75```
76git init
77git config core.sparsecheckout true
78echo code/DocsSample/Security/RequsetUserAuthorization/ > .git/info/sparse-checkout
79git remote add origin https://gitee.com/openharmony/applications_app_samples.git
80git pull origin master
81```