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 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

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 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

二、目前问题

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

HarmonyOS
2024-08-22 20:11:43
2227浏览
收藏 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 
  } 
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
分享
微博
QQ
微信
回复
2024-08-23 17:10:28


相关问题
HarmonyOS权限申请问题
1237浏览 • 1回复 待解决
HarmonyOS相册权限问题
1435浏览 • 1回复 待解决
HarmonyOS 权限申请拒绝问题
1006浏览 • 1回复 待解决
HarmonyOS 申请定位权限失败问题
1244浏览 • 1回复 待解决
HarmonyOS申请用户位置权限问题
1324浏览 • 1回复 待解决
HarmonyOS 保存图片到相册权限问题
1133浏览 • 1回复 待解决
HarmonyOS 动态申请权限申请不了
874浏览 • 1回复 待解决
HarmonyOS 系统相册权限访问问题
1754浏览 • 1回复 待解决
HarmonyOS 位置权限申请
1006浏览 • 1回复 待解决
检查某个权限是否已经授权。
1366浏览 • 1回复 待解决
HarmonyOS SaveButton 申请临时权限失败
1336浏览 • 1回复 待解决
HarmonyOS 新增申请权限编译失败
741浏览 • 1回复 待解决