HarmonyOS 鸿蒙Next:申请ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY权限后无法立即创建文件夹,提示权限未获取,再次进入App可正常创建
HarmonyOS 鸿蒙Next:申请ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY权限后无法立即创建文件夹,提示权限未获取,再次进入App可正常创建
class baseData {
permissions: Array<Permissions> = ['ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY'];
}
reqPermissionsFromUser() {
let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
atManager.requestPermissionsFromUser(getContext(this) as common.UIAbilityContext, baseData.permissions)
.then(async (data) => {
let grantStatus: Array<number> = data.authResults;
let length: number = grantStatus.length;
for (let i = 0; i < length; i++) {
if (grantStatus[i] === 0) {
// 用户授权,可以继续访问目标操作
let documentsPath = Environment.getUserDocumentDir();
let baseUrl = documentsPath + "/files";
fs.mkdir(baseUrl, (err: BusinessError) => {
if (err) {
// 提示没有权限,创建失败。再次进入App则可以正常创建
console.error("mkdir failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("mkdir succeed");
AppStorage.setOrCreate('baseFileUrl', baseUrl)
this.creteDir(baseUrl)
}
})
} else {
// 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限
}
}
})
.catch((err: BusinessError) => {
console.error(`Failed to request permissions from user. Code is ${err.code}, message is ${err.message}`);
})
}
async aboutToAppear() {
this.reqPermissionsFromUser();
}
更多关于HarmonyOS 鸿蒙Next:申请ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY权限后无法立即创建文件夹,提示权限未获取,再次进入App可正常创建的实战教程也可以访问 https://www.itying.com/category-93-b0.html
是平板
更多关于HarmonyOS 鸿蒙Next:申请ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY权限后无法立即创建文件夹,提示权限未获取,再次进入App可正常创建的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对帖子标题中提到的HarmonyOS(鸿蒙)Next系统中,申请ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY
权限后无法立即创建文件夹的问题,这通常是由于权限申请与生效之间的异步处理所致。
在鸿蒙系统中,当用户首次申请敏感权限(如读写文档目录)时,系统会弹出一个对话框让用户确认是否授权。尽管用户可能已经授权,但应用可能需要等待系统完成权限的最终确认和处理,这一过程可能是异步的。因此,在权限对话框关闭后立即尝试执行需要该权限的操作(如创建文件夹),可能会因为权限尚未完全生效而失败。
解决此问题的一种方法是,在应用尝试执行需要权限的操作前,加入适当的延迟或检查机制,确保权限已经生效。此外,也可以监听权限变化的事件,当权限状态变为已授权后再执行相关操作。
如果应用逻辑允许,还可以提示用户在授权后重新进入应用,以确保所有权限都已正确生效。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html