HarmonyOS 鸿蒙Next asset问题咨询
HarmonyOS 鸿蒙Next asset问题咨询
【设备信息】Mate 60
【API版本】Api14
【DevEco Studio版本】5.0.7.200
【问题描述】
asset 添加报错Error: The caller doesn’t have the permission. code:201
static addSync(key: string, value: string, e10: boolean = true): boolean {
try {
if (!AssetUtil.canIUse()) {
LogUtil.error(`AssetStore-当前设备不支持该模块`);
return false;
}
let attr: asset.AssetMap = new Map();
attr.set(asset.Tag.ALIAS, StrUtil.strToUint8Array(key));
attr.set(asset.Tag.SECRET, StrUtil.strToUint8Array(value));
attr.set(asset.Tag.SYNC_TYPE, asset.SyncType.THIS_DEVICE);
attr.set(asset.Tag.CONFLICT_RESOLUTION, asset.ConflictResolution.OVERWRITE); //新增关键资产时的冲突,覆盖原有的关键资产
if (e10) {
attr.set(asset.Tag.IS_PERSISTENT, e10); //在应用卸载时是否需要保留关键资产
}
asset.addSync(attr);
return true;
} catch (err) {
let error = err as BusinessError;
LogUtil.error(`AssetStore-addSync-异常 ~ code: ${error.code} -·- message: ${error.message}`);
return false;
}
}
更多关于HarmonyOS 鸿蒙Next asset问题咨询的实战教程也可以访问 https://www.itying.com/category-93-b0.html
该错误码表示权限校验失败,通常为没有权限,却调用了需要权限的API。检查下有没有申请ohos.permission.STORE_PERSISTENT_DATA权限,
addSync(attributes: AssetMap): void
新增一条关键资产,使用同步方式返回结果。
如果要设置IS_PERSISTENT属性,需要申请ohos.permission.STORE_PERSISTENT_DATA权限
更多关于HarmonyOS 鸿蒙Next asset问题咨询的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,asset
通常用于存储应用的静态资源文件,如图片、音频、配置文件等。这些资源文件在打包时会包含在应用的assets
目录下,运行时可以通过ResourceManager
或AssetManager
进行访问。
在鸿蒙Next中,AssetManager
是用于访问assets
目录下资源的核心类。开发者可以通过ResourceManager
获取AssetManager
实例,然后使用AssetManager
提供的方法来读取资源文件的内容。例如,可以使用open
方法打开一个资源文件,并获取其输入流。
需要注意的是,assets
目录下的文件不会被编译或处理,开发者需要自行处理文件的读取和解析。此外,assets
目录下的文件路径是相对路径,开发者在使用时需要指定正确的路径。
在鸿蒙Next中,assets
目录通常位于src/main/resources/rawfile
目录下。开发者可以在该目录下放置所需的资源文件,并在代码中通过ResourceManager
或AssetManager
进行访问。
总结来说,鸿蒙Next中的asset
问题主要涉及如何通过AssetManager
访问和应用assets
目录下的静态资源文件。开发者需要熟悉AssetManager
的使用方法,并确保资源文件的路径正确。