HarmonyOS 相册权限检查、申请问题

一、目前信息如下(已配置权限相关,正常授权后,可正常访问相册)

1、相册权限检查:

//  检查某一权限 -> boolean 
async function AppPermissionCheck(permission: Permissions): Promise<boolean> { 
  let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager(); 
  let grantStatus: abilityAccessCtrl.GrantStatus = abilityAccessCtrl.GrantStatus.PERMISSION_DENIED; 
  // 获取应用程序的accessTokenID 
  let tokenId: number = 0; 
  try { 
    let bundleInfo: bundleManager.BundleInfo = await bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION); 
    let appInfo: bundleManager.ApplicationInfo = bundleInfo.appInfo; 
    tokenId = appInfo.accessTokenId; 
  } catch (error) { 
    console.error(`Failed to get bundle info for self. Code is ${error}`); 
  } 
  // 校验应用是否被授予权限 
  try { 
    grantStatus = await atManager.checkAccessToken(tokenId, permission); 
  } catch (error) { 
    console.error(`Failed to check access token. Code is ${error}`); 
  } 
 
  return grantStatus === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED 
}

2、相册权限获取。

//  请求某权限 -> boolean 
async function AppPermissionReqOne(permission: Permissions, context: common.UIAbilityContext): Promise<boolean> { 
  try { 
    let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager(); 
    let ret = await atManager.requestPermissionsFromUser(context, [permission]) 
    let grantStatus: Array<number> = ret.authResults; 
    return grantStatus[0] === 0 
  } catch (e) { 
    return false 
  } 
}

二、目前问题

目前的HarmonyOS:当用户拒绝授权后,再次调用上面的AppPermissionReqOne方法,屏幕底部并不会弹出授权dialog(只是系统文字提示)。

HarmonyOS
2024-08-22 20:11:43
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

系统规格如此,首次申请权限,拒绝后,ret.authResults值为-1:未授权,表示权限已设置,无需弹窗,需要用户在"设置"中修改。参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-permissionrequestresult-V5

跳转应用权限设置界面参考:

let context = getContext(this) as common.UIAbilityContext; 
context.startAbility({ 
  bundleName: 'com.huawei.hmos.settings', 
  abilityName: 'com.huawei.hmos.settings.MainAbility', 
  uri: 'application_info_entry', 
  parameters: { 
    pushParams: context.abilityInfo.bundleName 
  } 
});
分享
微博
QQ
微信
回复
2024-08-23 17:10:28
相关问题
HarmonyOS权限申请问题
265浏览 • 1回复 待解决
HarmonyOS相册权限问题
409浏览 • 1回复 待解决
HarmonyOS申请用户位置权限问题
292浏览 • 1回复 待解决
HarmonyOS 系统相册权限访问问题
508浏览 • 1回复 待解决
HarmonyOS SaveButton 申请临时权限失败
238浏览 • 1回复 待解决
检查某个权限是否已经授权。
327浏览 • 1回复 待解决
app如何申请位置权限
267浏览 • 1回复 待解决
如何申请广告跟踪权限
286浏览 • 1回复 待解决
如何申请组合授权权限
273浏览 • 1回复 待解决
动态申请权限能否添加描述
548浏览 • 1回复 待解决
api 9 申请网络权限报错
3390浏览 • 1回复 待解决
Web组件如何申请位置权限
279浏览 • 1回复 待解决
Web中网页如何申请位置权限
369浏览 • 1回复 待解决
求告知如何申请广告跟踪权限
230浏览 • 1回复 待解决
申请拨打电话权限无效
5889浏览 • 1回复 待解决