再次向用户申请授权
=========

当应用通过[requestPermissionsFromUser()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-abilityaccessctrl#requestpermissionsfromuser9)拉起弹框[请求用户授权](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/request-user-authorization)时，如果用户拒绝授权，应用将无法再次通过requestPermissionsFromUser()拉起弹框。用户需要在系统设置中手动授权。

在“设置”应用中的路径如下：

*   路径一：设置 > 隐私与安全 > 权限类型（如位置信息） > 具体应用
*   路径二：设置 > 应用和元服务 > 某个应用

应用也可以通过调用[requestPermissionOnSetting()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-abilityaccessctrl#requestpermissiononsetting12)，直接拉起权限设置弹框，引导用户授权。

效果展示：

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/11/v3/3ICqxovDSReWvI1zaHpERQ/zh-cn_image_0000002633849112.png?HW-CC-KV=V1&HW-CC-Date=20260709T132354Z&HW-CC-Expire=86400&HW-CC-Sign=B416E9AACE3F6121F1852D7391246EF44D1CE1FBBE418CC0B2635F9AFB316F90)

以下示例代码展示了如何再次拉起弹框申请ohos.permission.APPROXIMATELY\_LOCATION权限。

import { abilityAccessCtrl, Context, common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

// ···
          let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
          let context: Context = this.getUIContext().getHostContext() as common.UIAbilityContext;
          atManager.requestPermissionOnSetting(context, \['ohos.permission.APPROXIMATELY\_LOCATION'\]).then((data: Array<abilityAccessCtrl.GrantStatus>) => {
            console.info(\`requestPermissionOnSetting success, result: ${data}\`);
          }).catch((err: BusinessError) => {
            console.error(\`requestPermissionOnSetting fail, code: ${err.code}, message: ${err.message}\`);
          });