通过文件路径打开文件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的方法
打开本地文件
赞
收藏 0
回答 3
待解决
相关问题
HarmonyOS 上层调用NAPI方法,传入文件路径,NAPI层怎么打开这个文件
409浏览 • 1回复 待解决
HarmonyOS 如何通过文件描述符fd获取路径
656浏览 • 1回复 待解决
路径和路径映射,在任何地方,通过绝对路径都能找到相应的文件夹或文件
1165浏览 • 1回复 待解决
HarmonyOS 怎样通过web打开系统文件管理器
631浏览 • 1回复 待解决
HarmonyOS 如何下载文件,并且下载完毕后,通过代码打开系统文件管理查看该文件
493浏览 • 1回复 待解决
HarmonyOS 调用OH_FileUri_GetPathFromUri接口后,获得的文件路径无法打开,报错为文件不存在
378浏览 • 1回复 待解决
通过NAPI编译后生成的abc文件存放路径在哪儿
2383浏览 • 1回复 待解决
Native库文件所在路径
2312浏览 • 1回复 待解决
HarmonyOS 文件路径转uri
661浏览 • 1回复 待解决
HarmonyOS dataPreferences存储文件路径
456浏览 • 1回复 待解决
文件的internal路径问题
573浏览 • 1回复 待解决
HarmonyOS data 开头类型的文件路径转为 file 开头类型的文件路径
556浏览 • 1回复 待解决
如何打开指定文件夹,选择文件返回
9352浏览 • 1回复 待解决
HarmonyOS fopen打开文件失败
219浏览 • 1回复 待解决
沙箱路径的文件怎么拿取?
2130浏览 • 1回复 待解决
HarmonyOS 如何通过api读取工程内的文件,现在读取到的都是沙箱路径下的文件
465浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS NEXT中通过沙箱路径获取图片文件?
788浏览 • 1回复 待解决
HarmonyOS 如何通过api获取公共目录下的图片文件夹路径
429浏览 • 1回复 待解决
只能通过 ets 文件导出而无法通过 ts 文件导出
1753浏览 • 1回复 待解决
HarmonyOS excel文件如何打开
357浏览 • 1回复 待解决
HarmonyOS 怎么打开PDF文件?
715浏览 • 1回复 待解决
通过迁移工具放进HarmonyOS应用里的db文件,这里如何填路径
636浏览 • 1回复 待解决
ATS如何判断路径是文件夹还是文件?
1005浏览 • 1回复 待解决
HarmonyOS 如何根据uri或者文件路径去删除此文件
542浏览 • 1回复 待解决
文件上传的本地路径如何获取
809浏览 • 1回复 待解决
路径取错了 但是这个跳转打开图片 浏览界面有点问题 图片显示不出来
你可以参照如下链接地址,查找到图片的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) {
// ...
}
参考:类似Android 7.0 FileProvider的处理
https://developer.huawei.com/consumer/cn/forum/topic/0202569897159290919?fid=0101303901040230869