当前位置: 首页 > news >正文

【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" } 
]
  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作为文件流转的目的地无权通过代码

http://www.hskmm.com/?act=detail&tid=5460

相关文章:

  • OpenStack Cinder 创建卷
  • 西电微机原理-第二章 Intel单核处理器
  • 二叉树的迭代遍历(非递归)
  • 记录---用好了 defineProps 才叫会用 Vue3,90% 的写法都错了
  • 今日流水账-2025年9月15日
  • c#给原文件重命名
  • tcpdump常用随笔
  • 2025年HR经理必备:10款高效人力资源管理软件推荐
  • GAS中GA变量数据的同步
  • 提升员工绩效的5大人才管理软件评测与分析
  • 【触想智能】工业显示屏与普通显示屏的八大区别以及应用领域分析
  • LLaVA- Improved Baselines with Visual Instruction Tuning - jack
  • 042-WEB 攻防:PHP 应用 MYSQL 架构 SQL 注入 跨库查询 文件读写 权限操作
  • Dsu On Tree 笔记
  • 西电微机原理-第一章 序论:微型计算机概述
  • Liunx 硬盘扩容
  • 船舶航向控制算法
  • pyside6 1
  • 基于WSL下载Hadoop和HBASE
  • 应用多、交付快,研发运维怎么管?看云效+SAE 如何一站式破局
  • revit二次开发之 钢筋功能详细分析
  • java-wxj02
  • 停止win10自动升级操作
  • vue3 - elementPlus
  • GAS_Aura-Target Data
  • windows 把恢复分区调整到 c 盘前面
  • wso2~对已发布api的元信息管理
  • 利用Myo臂环采集肌电信号和角速度来实现实时手势识别
  • 实用指南:leetcode 966. 元音拼写检查器 中等
  • 三轴传感开发新纪元:exvib扩展库让精准检测触手可及!