写点什么

【FAQ】应用 A 如何使用应用 B 内的文件?

作者:HarmonyOS SDK
  • 2025-09-15
    贵州
  • 本文字数:1542 字

    阅读完需:约 5 分钟

【问题描述】


应用 A 如何使用应用 B 的文件?例如,自己开发的应用想读取、复制微信、钉钉等 IM 应用内的文件。


【背景知识】


系统通过访问控制的机制,防止数据或功能被不当或恶意使用。当前访问控制的机制涉及多方面,包括应用沙箱、应用权限、系统控件等方案。


【解决方案】


为防止恶意行为对系统造成影响,提供安全的运行环境,应用沙箱限定了只有目标受众才能访问应用内的数据。在“应用沙箱目录”中,应用能看到自己的应用文件以及应用运行必需的系统文件,因此,本应用的文件不为其他应用可见,反之亦然。两个应用之间如果需要文件流转可以通过以下 3 种方案:


  1. 应用 A 将应用内文件以分享的形式发送给应用 B:这种方式应用 B 作为被分享应用需要在 module.json5 配置文件的 actions 标签的值配置为"ohos.want.action.sendData",表示接收应用分享文件,配置 uris 字段,表示接收 URI 的类型,即只接收其他应用分享该类型的 URI,如:


"actions": [     "ohos.want.action.sendData"     ], "uris": [   {     "scheme": "file",     "type": "text/plain"   } ]
复制代码


  1. 应用 A 使用应用 B 打开指定文件:如,使用其他图片编辑器打开/编辑一张图片可参考拉起图片编辑类应用;由系统从已安装的应用中寻找符合要求的应用,打开特定文件。

  2. 在应用 A 内操作,将应用文件转换为用户文件,应用 B 再直接访问用户文件。


3.1:应用 A 将文件转换为用户文件(需要应用 A 实现,如微信内保存图片,保存文件等操作);


3.2:应用 B 访问用户文件,业务代码是一致的,获取用户授权有两种方式:


a)使用系统 Picker(推荐);


b)申请受限权限(不推荐),如允许读取用户公共目录的图片或视频文件,允许应用访问并修改用户目录下的文件。


【总结】


因为安全访问机制的限制,应用 A 作为文件最初的拥有者和流出方,必须主动动作,其他应用才可能有权限分享到应用 A 内的文件;应用 B 作为文件流转的目的地无权通过代码


【问题描述】


应用 A 如何使用应用 B 的文件?例如,自己开发的应用想读取、复制微信、钉钉等 IM 应用内的文件。


【背景知识】


系统通过访问控制的机制,防止数据或功能被不当或恶意使用。当前访问控制的机制涉及多方面,包括应用沙箱、应用权限、系统控件等方案。


【解决方案】


为防止恶意行为对系统造成影响,提供安全的运行环境,应用沙箱限定了只有目标受众才能访问应用内的数据。在“应用沙箱目录”中,应用能看到自己的应用文件以及应用运行必需的系统文件,因此,本应用的文件不为其他应用可见,反之亦然。两个应用之间如果需要文件流转可以通过以下 3 种方案:


  1. 应用 A 将应用内文件以分享的形式发送给应用 B:这种方式应用 B 作为被分享应用需要在 module.json5 配置文件的 actions 标签的值配置为"ohos.want.action.sendData",表示接收应用分享文件,配置 uris 字段,表示接收 URI 的类型,即只接收其他应用分享该类型的 URI,如:


"actions": [     "ohos.want.action.sendData"     ], "uris": [   {     "scheme": "file",     "type": "text/plain"   } ]
复制代码


  1. 应用 A 使用应用 B 打开指定文件:如,使用其他图片编辑器打开/编辑一张图片可参考拉起图片编辑类应用;由系统从已安装的应用中寻找符合要求的应用,打开特定文件。

  2. 在应用 A 内操作,将应用文件转换为用户文件,应用 B 再直接访问用户文件。


具体操作分两步:


3.1:应用 A 将文件转换为用户文件(需要应用 A 实现,如微信内保存图片,保存文件等操作);


3.2:应用 B 访问用户文件,业务代码是一致的,获取用户授权有两种方式:


a)使用系统 Picker(推荐);


b)申请受限权限(不推荐),如允许读取用户公共目录的图片或视频文件,允许应用访问并修改用户目录下的文件。


【总结】


因为安全访问机制的限制,应用 A 作为文件最初的拥有者和流出方,必须主动动作,其他应用才可能有权限分享到应用 A 内的文件;应用 B 作为文件流转的目的地无权通过代码

用户头像

HarmonyOS SDK

关注

HarmonyOS SDK 2022-06-16 加入

HarmonyOS SDK通过将HarmonyOS系统级能力对外开放,支撑开发者高效打造更纯净、更智能、更精致、更易用的鸿蒙应用,和开发者共同成长。

评论

发布
暂无评论
【FAQ】应用A如何使用应用B内的文件?_HarmonyOS NEXT_HarmonyOS SDK_InfoQ写作社区