| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| AppScope/ | 22-Oct-2025 | - | 35 | 32 | ||
| entry/ | 22-Oct-2025 | - | 1,186 | 1,087 | ||
| hvigor/ | 22-Oct-2025 | - | 38 | 36 | ||
| screenshots/ | 22-Oct-2025 | - | ||||
| .gitignore | D | 22-Oct-2025 | 156 | 13 | 13 | |
| README.md | D | 22-Oct-2025 | 4.8 KiB | 81 | 59 | |
| build-profile.json5 | D | 22-Oct-2025 | 1.3 KiB | 58 | 57 | |
| code-linter.json5 | D | 22-Oct-2025 | 958 | 35 | 34 | |
| hvigorfile.ts | D | 22-Oct-2025 | 839 | 22 | 5 | |
| oh-package.json5 | D | 22-Oct-2025 | 809 | 26 | 24 | |
| ohosTest.md | D | 22-Oct-2025 | 2.3 KiB | 14 | 10 |
README.md
1# 向用户申请权限 2 3### 介绍 4 5本示例使用@ohos.abilityAccessCtrl,展示了应用申请权限场景。 6 7### 效果预览 8 9| 主页 | 授权弹窗 | 二次授权弹窗 | 二次授权页面 | 10| ------------------------------------ | ---------------------------------------- | ---------------------------------------------------- | :----------------------------------------------------- | 11|  |  |  |  | 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```