1# 二次向用户申请授权
2
3当应用通过[requestPermissionsFromUser()](../../reference/apis-ability-kit/js-apis-abilityAccessCtrl.md#requestpermissionsfromuser9)拉起弹框[请求用户授权](request-user-authorization.md)时,用户拒绝授权。应用将无法再次通过requestPermissionsFromUser()拉起弹框,需要用户在系统应用“设置”的界面中,手动授予权限。
4
5在“设置”应用中的路径:
6<!--RP1-->
7隐私 > 权限管理 > *权限类型(如位置信息)* > *具体应用*
8<!--RP1End-->
9
10应用也可以通过调用[requestPermissionOnSetting()](../../reference/apis-ability-kit/js-apis-abilityAccessCtrl.md#requestpermissiononsetting12),直接拉起权限设置弹框,引导用户授予权限。
11
12效果展示:
13
14![zh-cn_image_location](figures/zh-cn_image_location_second.png)
15
16以下示例代码以再次拉起弹窗申请ohos.permission.APPROXIMATELY_LOCATION权限为例。
17
18```ts
19import { abilityAccessCtrl, Context, common } from '@kit.AbilityKit';
20import { BusinessError } from '@kit.BasicServicesKit';
21
22let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
23let context: Context = getContext(this) as common.UIAbilityContext;
24atManager.requestPermissionOnSetting(context, ['ohos.permission.APPROXIMATELY_LOCATION']).then((data: Array<abilityAccessCtrl.GrantStatus>) => {
25  console.info('data:' + JSON.stringify(data));
26}).catch((err: BusinessError) => {
27  console.error('data:' + JSON.stringify(err));
28});
29```