通过文件管理器使用三方应用对文件进行读写
通过文件管理器使用三方应用对文件进行读写
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
文件读写方法:想咨询一下对文件读写操作是,写入一个文件。
1855浏览 • 1回复 待解决
HarmonyOS 怎样通过web打开系统文件管理器
286浏览 • 1回复 待解决
三方应用使用蓝牙功能
1233浏览 • 1回复 待解决
HarmonyOS 三方so如何访问rawfile文件
602浏览 • 1回复 待解决
使用文件管理器选择文件并放到分布式目录
609浏览 • 1回复 待解决
HarmonyOS 三方so如何访问rawfile文件?
495浏览 • 0回复 待解决
HarmonyOS 是否支持通过deeplink打开三方应用
248浏览 • 1回复 待解决
HarmonyOS如何调用三方提供的js文件
970浏览 • 1回复 待解决
HarmonyOS 如何将文件管理器中的文件保存到应用沙箱
257浏览 • 1回复 待解决
HarmonyOS 使用第三方应用打开
319浏览 • 1回复 待解决
HarmonyOS 如何对文件进行追加写入
466浏览 • 1回复 待解决
HarmonyOS 网盘文件如何下载到文件管理器
265浏览 • 1回复 待解决
HarmonyOS 应用通过StartAbility的方式拉起了三方支付应用,在三方支付应用点击取消无法跳回当前App
333浏览 • 1回复 待解决
HarmonyOS 打开三方应用
298浏览 • 1回复 待解决
HarmonyOS 创新分享场景,从相册分享到三方应用,通过返回键退出三方应用,三分应用居然没有结束
478浏览 • 1回复 待解决
HarmonyOS 使用第三方库进行gzip压缩失败
127浏览 • 1回复 待解决
HarmonyOS 使用WebViewJavascriptBridge第三方库进行JS交互
154浏览 • 1回复 待解决
HarmonyOS 通过scheme如何唤起三方APP
467浏览 • 1回复 待解决
如何打开文件管理器有知道的吗?
2416浏览 • 1回复 待解决
OHPM包管理怎么安装第三方包
4813浏览 • 1回复 待解决
#鸿蒙通关秘籍#对文件管理不是明白,提个问题,应用文件备份时,系统会如何处理特殊文件?
391浏览 • 1回复 待解决
系统文件管理器支持的最长文件名是多少?
1002浏览 • 1回复 待解决
三方依赖如何根据场景进行添加依赖。
1377浏览 • 1回复 待解决
如何将三方应用改为系统应用
1571浏览 • 2回复 已解决
HarmonyOS 文件管理器中图片目录如何访问
276浏览 • 1回复 待解决
我们经常通过文件管理器使用三方应用对文件进行读写,具体该如下。
场景一:
从文件管理器打开文件,选择三方应用打开。
后缀名
MIMEType
txt
text/plain
xlsx
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
png
image/png
mp3
audio/mpeg
java
text/x-java
1 、应用需要在module.json5配置文件的actions标签的值配置为"ohos.want.action.viewData",表示接收应用分享文件,配置uris字段,表示接收URI的类型,即只接收其他应用分享该类型的URI,如下表示本应用只接收scheme为file,类型为txt的文件。
2 、被分享方的UIAbility被启动后,可以在其onCreate()或者onNewWant回调中获取传入的Want参数信息,通过接口want的参数获取分享文件的URI,获取文件URI后通过fs.open接口打开文件,获取对应的file对象后,可对文件进行读写操作。
3 、引用了三方库@changwei/chardet,实现对特定编码格式进行自动识别。
效果图
关键步骤
第一步:被分享应用需要在module.json5配置文件的actions标签的值配置为"ohos.want.action.viewData",表示接收应用分享文件,配置uris字段,表示接收URI的类型,即只接收其他应用分享该类型的URI,如下表示本应用只接收scheme为file,类型为txt的文件。(type值设置查看文章顶部链接,scheme同一设置为file,表示接受文件)。
第二步:被分享方的UIAbility被启动后,可以在其onCreate()或者onNewWant回调中获取传入的Want参数信息。
通过接口want的参数获取分享文件的URI,获取文件URI后通过fs.open接口打开文件,获取对应的file对象后,可对文件进行读写操作。此处引用了三方库@changwei/chardet,详情见识别并显示特定编码格式的文件部分。
场景二:
识别并显示特定编码格式的文件
效果图
编码
介绍
Unicode
Unicode是一种多语言编码格式,用于表示和传输各种语言的文本数据。
UTF-8
UTF-8是一种变长编码格式,用于表示和传输Unicode文本数据。
GB2312
GB2312是一种中文编码格式,用于表示和传输中文文本数据。
UTF-16
UTF-16是一种变长编码格式,用于表示和传输Unicode文本数据。
ANSI
ANSI是一种美国国家标准协会制定的编码格式,用于表示和传输美国英语文本数据。
GBK
是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字符。
ASCII
ASCII是一种通用的编码格式,用于表示和传输文本数据
关键步骤
第一步:安装三方库依赖。
ohpm install @changwei/chardet
第二步:在代码中引入使用,返回最可能的字符编码。
常见问题
Q:如何通过文件后缀获取对应的MIMEType列表?
A:下面以通过“.mp3”文件后缀获取对应的MIMEType列表为例,说明如何通过文件后缀获取对应的MIMEType列表。
1、导入@ohos.data.uniformTypeDescriptor模块。
2、可根据 “.mp3” 文件后缀查询对应UTD数据类型。
3、根据UTD数据类型查询对应的MIMEType列表。
Q:如何通过MIMEType获取对应的后缀列表?
A:下面以通过“audio/mp3”MIMEType获取对应文件后缀列表为例,说明如何通过MIMEType获取对应的后缀列表。
1、导入@ohos.data.uniformTypeDescriptor模块。
2、可根据 “audio/mp3” MIMEType查询对应UTD数据类型。
3、根据UTD数据类型查询对应的后缀列表。
Q:如何控制文件读写权限?
A:基于URI分享方式,应用可分享单个文件,通过ohos.app.ability.wantConstant的wantConstant.Flags接口以只读或读写权限授权给其他应用。应用可通过ohos.file.fs的open接口打开URI,并进行读写操作。当前仅支持临时授权,分享给其他应用的文件在被分享应用退出时权限被收回。
基于FD分享方式,应用可分享单个文件,通过ohos.file.fs的open接口以指定权限授权给其他应用。应用从Want中解析拿到FD后可通过ohos.file.fs的读写接口对文件进行读写。