通过文件路径打开文件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
待解决
相关问题
如何打开指定文件夹,选择文件返回
2157浏览 • 1回复 待解决
js开发上传文件路径问题
1897浏览 • 2回复 待解决
Harmony 如何读取本地视频文件路径?
8203浏览 • 2回复 待解决
鸿蒙如何获取资源文件种的路径
9470浏览 • 3回复 待解决
DevEco Device Tool 怎么自定义烧录文件的路径?
1491浏览 • 1回复 待解决
webview选择本地文件关闭文件打开方式弹窗后无法获取弹窗关闭事件
3237浏览 • 4回复 待解决
VS CODE DevEco 加载源代码 无法打开源文件
2126浏览 • 1回复 待解决
Linux使用mysql的命令mysqldump备份数据库,不指定文件路径,导出的文件默认存储哪里呢?
2111浏览 • 1回复 待解决
在 JS 框架 下,如何打开文件选择器选择图片?
339浏览 • 1回复 待解决
使用DevEco Studio启动本地模拟器后,打开Excel文件很慢
1100浏览 • 1回复 待解决
用DevEco device tool打开源码时,显示不是工程路径
2441浏览 • 1回复 待解决
通过DevEco-Studio生成的密钥文件和证书请求文件是只针对当前应用有效还是所有的应用都有效呢?
2843浏览 • 2回复 已解决
文件管理中,修改文件中的.RAR后缀,变成.APK文件消失了,怎么回事呀
3302浏览 • 1回复 待解决
选择本机上的一个xlsx文件,本地解析文件,如何获取本地文件的path
1422浏览 • 1回复 待解决
如何在js文件中引入自定义js文件
2830浏览 • 1回复 待解决
openharmony是 如何找到 js文件 import 文件的源码在哪?
2747浏览 • 2回复 待解决
DVS中xml格式的layout文件如何关联java文件
1983浏览 • 1回复 已解决
Build Output文件报错
3710浏览 • 1回复 待解决
harmonyos怎么读写文件?
6191浏览 • 1回复 已解决
JS api的文件管理里面没有获取文件列表的接口么?
2040浏览 • 2回复 待解决
在Windows平台使用VS code打开虚拟机Samba映射的harmony3.0代码,会显示无法打开头文件
1088浏览 • 1回复 待解决
鸿蒙桌面怎么批量删除文件夹,或者文件夹重组,重新分类
4650浏览 • 1回复 待解决
如何渲染gif类型的文件
3054浏览 • 1回复 待解决
ets文件里dialog弹窗是否能以组件形式引入到其他ets文件中使用?
778浏览 • 1回复 待解决
hilink sdk集成到harmonyos中,hilink sdk已有静态库文件如何通过gn添加到harmonyos编译中?
2542浏览 • 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