通过文件路径打开文件FileUriExposedException-鸿蒙开发者社区-51CTO.COM

通过文件路径打开文件FileUriExposedException

文件本地路径例如:/storage/emulated/0/Android/data/com.xx.hw.hw/cache/download/a.jpg 

Operation operation = new Intent.OperationBuilder()
            .withUri(Uri.getUriFromFile(file))
            .withAction("android.intent.action.VIEW")
            .build();

        intent.setType("image/*");
    Intent intent = new Intent();
    intent.setOperation(operation);
    context.startAbility(intent, 111111);

报错:

android.os.FileUriExposedException:

file:///storage/emulated/0/Android/data/com.xx.hw.hw/cache/download/a.jpg

exposed beyond app through Intent.getData()

 

鸿蒙中是否有类似Android contentProvider 将文件路径转为Uri的方法

打开本地文件
2021-08-30 22:13:22
浏览
收藏 0
回答 3
待解决
回答 3
按赞同
/
按时间
爱吃土豆丝的打工人

路径取错了  但是这个跳转打开图片 浏览界面有点问题  图片显示不出来

分享
微博
QQ
微信
回复1
2021-09-01 11:42:21
mb609898e2cfb86

你可以参照如下链接地址,查找到图片的ID,然后通过ID生成Uri:

 

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/media-data-mgmt-storage-0000001050994909
 

DataAbilityHelper helper = DataAbilityHelper.creator(this);
        try {
            DataAbilityPredicates predicates = new DataAbilityPredicates();
            // 设置查询过滤条件
            predicates.equalTo(AVStorage.Images.Media.DATA, "图片地址");
            // columns为null,查询记录所有字段,当前例子表示查询id字段
            String[] strings = new String[]{AVStorage.Images.Media.ID};
            ResultSet result = helper.query(AVStorage.Images.Media.EXTERNAL_DATA_ABILITY_URI, strings, predicates );
            if (result == null) {
                return;
            }
            while (result.goToNextRow()) {
               int ID =  result.getInt(result.getColumnIndexForName(AVStorage.Images.Media.ID)); // 获取id字段的值
              Uri uri = Uri.appendEncodedPathToUri(AVStorage.Images.Media.EXTERNAL_DATA_ABILITY_URI, String.valueOf(ID)); // id为步骤1获取到的id
            }
            result.close();
        } catch (DataAbilityRemoteException e) {
            // ...
        }

分享
微博
QQ
微信
回复1
2021-09-01 11:55:34
JiangSK00

参考:类似Android 7.0 FileProvider的处理

https://developer.huawei.com/consumer/cn/forum/topic/0202569897159290919?fid=0101303901040230869

分享
微博
QQ
微信
回复
2021-09-01 14:52:33
相关问题
Native库文件所在路径
2312浏览 • 1回复 待解决
HarmonyOS 文件路径转uri
661浏览 • 1回复 待解决
HarmonyOS dataPreferences存储文件路径
456浏览 • 1回复 待解决
文件的internal路径问题
573浏览 • 1回复 待解决
如何打开指定文件夹,选择文件返回
9352浏览 • 1回复 待解决
HarmonyOS fopen打开文件失败
219浏览 • 1回复 待解决
沙箱路径文件怎么拿取?
2130浏览 • 1回复 待解决
HarmonyOS excel文件如何打开
357浏览 • 1回复 待解决
HarmonyOS 怎么打开PDF文件
715浏览 • 1回复 待解决
ATS如何判断路径文件夹还是文件
1005浏览 • 1回复 待解决
文件上传的本地路径如何获取
809浏览 • 1回复 待解决