HarmonyOS 权限申请拒绝问题

请问下权限申请拒绝后,通过 startAbility() 的方式跳转到了应用setting 界面,有几个问题

  1. 跳转过去,返回的时候不是直接返回应用,而是返回到设置程序上一页

  2. 只能跳转到应用主页,不能跳转到具体权限页面吗,比如定位权限之类

  3. 权限如果设置成功,怎么通知到应用呢,在非 UI 的类中如何操作,因为我是封装了一个权限管理器,有没有类似的回调之类的

HarmonyOS
2024-12-23 14:28:43
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

1、可以使用二次申请授权接口,通过调用requestPermissionOnSetting()直接拉起权限设置弹框,引导用户授予权限

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/request-user-authorization-second-V5

2、这块目前也是不支持的,只可以先跳转到应用信息页面,由用户点击进入权限页面进行勾选

3、可以检测用户是否获取权限,demo示例如下:

//首先检测用户权限需要先获取Token,token是异步回调的
import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl';
async accessToken(permission: Permissions): Promise<abilityAccessCtrl.GrantStatus> {
  let atManager = abilityAccessCtrl.createAtManager()
  let grantStatus: abilityAccessCtrl.GrantStatus

  let tokenID: number
  try {
  let bundleInfo = await bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION)
  tokenID = bundleInfo.appInfo.accessTokenId
} catch (err) {
  console.log('location 获取地理位置token失败')
}

try {
  grantStatus = await atManager.checkAccessToken(tokenID,permission)
} catch (err) {
  console.log('获取地理位置token检测失败')
}

return grantStatus
}
//其次获取token后,开始查询用户权限状态
async checkPermission() {

  let permissions: Array<Permissions> = ['ohos.permission.LOCATION','ohos.permission.APPROXIMATELY_LOCATION']
  let locationStatus = await this.accessToken(permissions[0])
  let roximateyStatus = await this.accessToken(permissions[1])
  if (locationStatus == abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED &&
    roximateyStatus == abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) {
    console.log('location 已经申请完权限了')
  } else {
    console.log('location 需要申请权限')
    this.requestPermission()
  }
}
分享
微博
QQ
微信
回复
2024-12-23 15:19:57
相关问题
HarmonyOS权限申请问题
808浏览 • 1回复 待解决
HarmonyOS 获取拒绝权限
381浏览 • 1回复 待解决
HarmonyOS 申请定位权限失败问题
546浏览 • 1回复 待解决
HarmonyOS webview权限授权被拒绝
349浏览 • 1回复 待解决
HarmonyOS 相册权限检查、申请问题
1643浏览 • 1回复 待解决
HarmonyOS申请用户位置权限问题
886浏览 • 1回复 待解决
HarmonyOS 动态申请权限申请不了
391浏览 • 1回复 待解决
读取本地json 文件提示权限拒绝
3610浏览 • 1回复 待解决
HarmonyOS 位置权限申请
481浏览 • 1回复 待解决
HarmonyOS 申请ACL权限有无模板?
538浏览 • 1回复 待解决
HarmonyOS 新增申请权限编译失败
302浏览 • 1回复 待解决
HarmonyOS SaveButton 申请临时权限失败
838浏览 • 1回复 待解决
HarmonyOS 权限二次申请
380浏览 • 1回复 待解决
HarmonyOS 仓颉的权限怎么申请
506浏览 • 1回复 待解决
HarmonyOS 系统权限申请demo——拍照
315浏览 • 1回复 待解决