README_zh.md

向用户申请权限

介绍

本示例使用@ohos.abilityAccessCtrl,展示了应用申请权限场景。

效果预览

主页 授权弹窗 二次授权弹窗 二次授权页面
main dialog seconddialog secondability

使用说明

  1. 打开应用,点击检测权限按钮,出现提示信息“权限未申请”。

  2. 点击在Page中申请权限按钮,跳到Page页面,出现授权弹窗,点击取消按钮,返回主页点击检测权限按钮,出现提示信息“权限未申请”。

  3. 点击在UIAbility中申请权限按钮,跳到secondAbility页面,出现授权弹窗,点击取消按钮,点击再次授权按钮,出现二次授权弹窗,选择仅使用期间允许选项,点击导航到EntryAbility按钮返回主页,点击检测权限按钮,出现提示信息“未申请精确定位权限”。

  4. 再次点击在UIAbility中申请权限 按钮,跳到secondAbility页面,出现授权弹窗,点击仅使用期间允许按钮,点击导航到EntryAbility按钮返回主页,点击检测权限按钮,出现提示信息“权限已申请“。

工程目录

RequsetUserAuthorization
├──entry/src/main
│  ├──ets                                       // ets代码区 
│  │  ├──entryability
│  │  │  └──EntryAbility.ets                    // 程序入口类
|  |  ├──pages                                  // 页面文件
│  │  │  └──Index.ets                           // RequsetUserAuthorization主页
│  │  ├──reqpermissioninui                      
│  │  │  └──pages                               
│  │  │     └──Index.ets                        // UI申请权限页面
│  │  ├──secondability
│  │  │  └──SecondAbility.ets                   // SecondAbility入口
|  |  ├──secondpages                            // SecondAbility页面文件
│  │  │  └──Index.ets                           // 二次申请权限页面
│  │  └──utils                                  // 工具文件
│  │     └──PermissionUtil.ets                  // 校验权限工具
|  ├──resources                                 // 资源文件目录
│  │

具体实现

  • 本示例分为权限检测模块、向用户申请权限模块
    • 权限检测模块
      • 使用bundleManager接口中getBundleInfoForSelf方法获取应用程序的accessTokenID,根据accessTokenID使用abilityAccessCtrl接口中checkAccessToken方法检测权限是否被申请。
      • 接口参考:@ohos.abilityAccessCtrl@ohos.bundle.bundleManager
    • 向用户申请权限模块
      • 使用abilityAccessCtrl接口中requestPermissionsFromUser方法向用户申请权限,用户拒绝后使用requestPermissionOnSetting方法拉起二次授权功能。
      • 接口参考:@ohos.abilityAccessCtrl

相关权限

  1. 允许应用获取设备位置信息权限:ohos.permission.LOCATION

  2. 允许应用获取设备模糊位置信息:ohos.permission.APPROXIMATELY_LOCATION

依赖

不涉及。

约束与限制

  1. 本示例仅支持标准系统上运行,支持设备:RK3568。

  2. 本示例为Stage模型,支持API20版本SDK,版本号:(6.0.0.38)。

  3. 本示例已支持使DevEco Studio 6.0.0 Release(构建版本:6.0.0.868)编译运行。

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code/DocsSample/Security/RequsetUserAuthorization/ > .git/info/sparse-checkout
git remote add origin https://gitcode.com/openharmony/applications_app_samples.git
git pull origin master