HarmonyOS 鸿蒙Next文件下载保存并打开功能如何实现

发布于 1周前 作者 h691938207 来自 鸿蒙OS

HarmonyOS 鸿蒙Next文件下载保存并打开功能如何实现

要实现一个功能,应用内下载文件到应用命名的文件夹内并默认打开,用户都能看得到,使用DocumentViewPicker失败,报13900012, 请问大佬们要实现这个功能应该如何操作呢?要用哪些api呢?

4 回复

1、先了解鸿蒙文件访问的基本分类和访问方式,可参考【[API 9] 文件访问小结】,虽然是在API 9总结的,但大体思路没有本质变化,有了整体思路的了解再看新版文档也知道各接口适用哪种访问方式;

NEXT API 12相比于API 9 的 picker接口有了改进,原来只有photoViewPicker能正常使用;新API 中 photoViewPicker 不再演进,转向PhotoAccessHelper 的 photoViewPicker 来选择图片(有点绕);另外对文档和音频文件的picker接口都是来自FilePicker,在权限上也有临时权限和持久化权限的新控制方式,需要看新版文档按指导使用;在指南文档中 应用框架 > Core File Kit > 【用户文件】 部分有详细介绍;

2、看需求描述可考虑【Download模式保存文件】,可按文档示例操作在下载目录中创建应用名子目录来保存下载的文件。如果需要持久化授权可参考【授权持久化】,且需要申请ACL白名单,之前是通过邮件申请,批准后上AGC应用管理界面里为注册的应用添加开放的权限,并和应用中配置的权限名称一致即可获得正常访问。

13900012 拒绝许可

错误信息

Permission denied

可能原因

1.文件操作被DAC或selinux拦截。

2.文件沙箱路径地址错误。

处理步骤

1.访问被DAC自主式权限控制权限拦截,请排查文件的UGO权限。

2.排查内核日志中是否有avc拦截日志,如果存在avc拦截告警,

请通过“华为开发者联盟官网”->“支持”,在线提单方式获取支持。

3.确认文件的路径是否为应用内的沙箱路径沙箱路径地址,文件管理系统禁止操作应用沙箱以外的文档。

请问你加上权限申请了吗?还有最好下载的文件放沙箱路径下,不然没有权限操作。

13900012 拒绝许可

错误信息

Permission denied

可能原因

1.文件操作无权限。

2.文件沙箱路径地址错误。

处理步骤

1.确认权限。

2.确认文件沙箱路径地址。

HarmonyOS 鸿蒙Next文件下载保存并打开功能实现,首先需通过FilePicker或相关API下载文件到本地,并确保文件保存在应用的沙箱路径下或指定目录(如Download目录)。文件保存后,通过基础文件API(如fs.openSync, fs.readSync等)打开文件进行读取或编辑。如果需要在应用外打开文件,可能需要获取持久化权限或通过系统文件管理器进行。如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部