HarmonyOS鸿蒙Next中上传图片路径转换dataability:///media/external/images/media/30为/storage/emulated/0/DCIM/YIIoT/5769014/20220516162557036.jpg

HarmonyOS鸿蒙Next中上传图片路径转换dataability:///media/external/images/media/30为/storage/emulated/0/DCIM/YIIoT/5769014/20220516162557036.jpg

//获取图片对应的uri,由于获取到的前缀是content,我们替换成对应的dataability前缀
Uri uri = Uri.appendEncodedPathToUri(AVStorage.Images.Media.EXTERNAL_DATA_ABILITY_URI, chooseImgId);
private static String searchImages(Context context, Uri contentUri) {
    DataAbilityHelper helper = DataAbilityHelper.creator(context);
    ResultSet resultSet = null;
    try {
        resultSet = helper.query(contentUri, new String[]{AVStorage.Images.Media.ID, AVStorage.Images.Media.DISPLAY_NAME, AVStorage.Images.Media.DATA}, null);
        int columnIndexForName = resultSet.getColumnIndexForName(AVStorage.Images.Media.DATA);
        resultSet.goToFirstRow();
        return resultSet.getString(columnIndexForName);
    } catch (DataAbilityRemoteException e) {
        e.printStackTrace();
    } finally {
        if (resultSet != null) {
            resultSet.close();
        }
    }
    return null;
}

更多关于HarmonyOS鸿蒙Next中上传图片路径转换dataability:///media/external/images/media/30为/storage/emulated/0/DCIM/YIIoT/5769014/20220516162557036.jpg的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在HarmonyOS鸿蒙Next中,dataability:///media/external/images/media/30 是一个URI(统一资源标识符),用于标识媒体库中的特定资源。要将该URI转换为文件系统中的实际路径 /storage/emulated/0/DCIM/YIIoT/5769014/20220516162557036.jpg,可以使用鸿蒙提供的 DataAbilityHelperFileDescriptor 来实现。

具体步骤如下:

  1. 使用 DataAbilityHelper 获取 FileDescriptor
let dataAbilityHelper = dataAbility.createDataAbilityHelper(context);
let fd = await dataAbilityHelper.openFile(uri, "r");
  1. 通过 FileDescriptor 获取文件路径:
let filePath = fd.getPath();
  1. 最终得到的 filePath 即为文件系统中的实际路径 /storage/emulated/0/DCIM/YIIoT/5769014/20220516162557036.jpg

需要注意的是,dataability:///media/external/images/media/30 是媒体库中的URI,而 /storage/emulated/0/DCIM/YIIoT/5769014/20220516162557036.jpg 是文件系统中的路径。转换过程依赖于鸿蒙系统的API,确保应用具有相应的权限。

更多关于HarmonyOS鸿蒙Next中上传图片路径转换dataability:///media/external/images/media/30为/storage/emulated/0/DCIM/YIIoT/5769014/20220516162557036.jpg的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,dataability://路径是用于访问DataAbility的URI格式,而/storage/emulated/0/DCIM/YIIoT/5769014/20220516162557036.jpg是文件系统的实际路径。要将dataability:///media/external/images/media/30转换为文件系统路径,通常需要通过DataAbility的API进行查询,获取对应的文件路径。具体实现可以参考HarmonyOS的DataAbility开发文档,使用query方法获取文件信息,再从中提取实际路径。

回到顶部