通过文件路径打开文件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
待解决
相关问题
Native库文件所在路径
318浏览 • 1回复 待解决
如何打开指定文件夹,选择文件返回
6793浏览 • 1回复 待解决
通过NAPI编译后生成的abc文件存放路径在哪儿
201浏览 • 1回复 待解决
js开发上传文件路径问题
4550浏览 • 2回复 待解决
如何获取应用自身的源文件路径
262浏览 • 1回复 待解决
Harmony 如何读取本地视频文件路径?
12599浏览 • 2回复 待解决
修改沙箱路径下json文件的指定内容
946浏览 • 1回复 待解决
如何正确地在CMakeLists.txt文件中配置头文件搜索路径
220浏览 • 1回复 待解决
调用系统文件管理器 选择文件之后 如何根据 uri 获取系统文件名称和路径
2371浏览 • 1回复 待解决
openharmony如何使用arkts将文件写入指定路径
359浏览 • 0回复 待解决
鸿蒙如何获取资源文件种的路径
13757浏览 • 3回复 待解决
fileio.open文件路径错误怎么回事啊?
1134浏览 • 1回复 待解决
ETs,对沙箱路径下的json文件内容遍历
1401浏览 • 1回复 待解决
如何修改沙箱路径下json文件的指定内容
386浏览 • 1回复 待解决
请问ets如何读写非沙箱路径下的文件?
1476浏览 • 1回复 待解决
DevEco Device Tool 怎么自定义烧录文件的路径?
4336浏览 • 1回复 待解决
安装apk之后,rawfile文件的的具体路径是什么?
3953浏览 • 1回复 待解决
ets Web加载本地html文件,本地路径该怎么写
593浏览 • 1回复 待解决
webview选择本地文件关闭文件打开方式弹窗后无法获取弹窗关闭事件
6428浏览 • 4回复 待解决
应用从远程服务器下载文件的下载路径
379浏览 • 1回复 待解决
ubuntu下无法打开新建的文件怎么回事?
404浏览 • 1回复 待解决
如何打开文件管理器有知道的吗?
496浏览 • 1回复 待解决
如何开发一个手机app可以作为特定扩展名文件的打开方式并打开处理文件?
646浏览 • 1回复 待解决
上层应用打开文件获取到fd之后,通过native传到C侧,C侧能访问这个fd吗
176浏览 • 1回复 待解决
VS CODE DevEco 加载源代码 无法打开源文件
6259浏览 • 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