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

2 回复

该错误码表示权限校验失败,通常为没有权限,却调用了需要权限的API。检查下有没有申请ohos.permission.STORE_PERSISTENT_DATA权限,

addSync(attributes: AssetMap): void

新增一条关键资产,使用同步方式返回结果。

如果要设置IS_PERSISTENT属性,需要申请ohos.permission.STORE_PERSISTENT_DATA权限

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-asset-V13#assetaddsync12

更多关于HarmonyOS 鸿蒙Next asset问题咨询的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,asset通常用于存储应用的静态资源文件,如图片、音频、配置文件等。这些资源文件在打包时会包含在应用的assets目录下,运行时可以通过ResourceManagerAssetManager进行访问。

在鸿蒙Next中,AssetManager是用于访问assets目录下资源的核心类。开发者可以通过ResourceManager获取AssetManager实例,然后使用AssetManager提供的方法来读取资源文件的内容。例如,可以使用open方法打开一个资源文件,并获取其输入流。

需要注意的是,assets目录下的文件不会被编译或处理,开发者需要自行处理文件的读取和解析。此外,assets目录下的文件路径是相对路径,开发者在使用时需要指定正确的路径。

在鸿蒙Next中,assets目录通常位于src/main/resources/rawfile目录下。开发者可以在该目录下放置所需的资源文件,并在代码中通过ResourceManagerAssetManager进行访问。

总结来说,鸿蒙Next中的asset问题主要涉及如何通过AssetManager访问和应用assets目录下的静态资源文件。开发者需要熟悉AssetManager的使用方法,并确保资源文件的路径正确。

回到顶部