【FAQ】应用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"
    }
    ]

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

  3. 在应用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"
    }
    ]

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

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

具体操作分两步:

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

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

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

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

【总结】

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

相关推荐
ai安歌28 分钟前
鸿蒙PC:Qt适配OpenHarmony实战【人名录】:单机联系人卡片,不读系统通讯录也能演示详情联动
数据库·qt·harmonyos
lqj_本人1 小时前
鸿蒙electron跨端框架PC简序实战:把轻任务、优先级和截止时间塞进一张桌面清单
华为·harmonyos
想你依然心痛2 小时前
HarmonyOS 6 悬浮导航 + 沉浸光感:打造鸿蒙智能体驱动的沉浸式智能家居控制中枢
华为·ar·智能家居·harmonyos·智能体
lqj_本人2 小时前
鸿蒙PC:Qt适配OpenHarmony实战【花账】:从一笔支出开始,做一个本地记账小应用
数据库·qt·harmonyos
递归4042 小时前
ofdkit-harmony 0.2.0 发布:鸿蒙原生 OFD 阅读库,已上架 ohpm
开源·harmonyos·arkts·ofd·ohpm
nashane3 小时前
HarmonyOS 6学习:SoundPool音频防抖与Web长截图时序重构
学习·音视频·harmonyos·harmonyos 5
Exploring4 小时前
鸿蒙App开发,华为手机里装这一个就够了——「Hola万能计算器」到底有多万能?
harmonyos
想你依然心痛4 小时前
HarmonyOS 6 悬浮导航 + 沉浸光感:打造鸿蒙智能体驱动的沉浸式数据可视化驾驶舱
华为·信息可视化·ar·harmonyos·智能体
lqj_本人15 小时前
鸿蒙electron跨端框架PC导出管家实战:把交付前的检查、复制和导出做成一个工坊
华为·electron·harmonyos
ai安歌19 小时前
鸿蒙PC:鸿蒙electron跨端框架PC归档流水线实战:把散落文件整理成可追踪的桌面归档流程
华为·electron·harmonyos