open Harmony设备统一互联文件互传技术规范(二)

📅 2026/7/4 3:26:23
open Harmony设备统一互联文件互传技术规范(二)
文件传输流程这张图是文件互传的最终目的怎么将文件数据真正发送出去发送端UI 发送端客户端 接收端服务端阶段一万事俱备准备传输初始化在真正按发送按钮之前双方都需要先“搭好台子”。左侧发送方准备SetFileSendListener告诉系统如果有传输进度、传输结果回调这个函数通知我App界面。CreateSessionServer建立一个文件传输的服务器会话相当于开了一个专门收发货的柜台。OpenSession打开通往对方那个柜台的通道。SendFile把文件丢进通道里按下发送键。右侧接收方准备SetFileReceiveListener准备一个“货到了该怎么处理”的监听器。CreateSessionServer和左边一样也在自己这里开一个接收文件的“柜台”。(注这里有个细节右侧是CreateSessionServer说明它是“服务端”角色等着左边把文件推过来。)阶段二数据流转实时反馈传输中这是传输的核心过程出现了虚线异步反馈非常关键。大实线箭头发送文件真正的文件数据流通过网络传输过去。右边触发接收文件处理接收方的系统底层源源不断地收到数据。关键的互动包传输结果大家注意那条带箭头向左指向的虚线包传输结果。含义右边收到一段数据后会给左边发送一个“确认收到”ACK信号。作用左边收到这个信号后才会继续发下一段。如果没收到系统会自动重发。这保证了文件传输过程中绝不会丢包。实时反馈给用户看最左侧那条指向外面的虚线发送进度。含义系统在发送的过程中会持续通过回调刚才设置的SetFileSendListener把进度如 10%、50%、100%异步告诉给手机屏幕让你看到进度条在动。阶段三收尾完工释放资源传输完成左侧完成文件数据全部发完并且确认右边全收了。左侧系统触发OnSendFileFinished发送完成回调。此时最左侧会出现发送完成的虚线通知UI弹出“已发送”的提示。右侧完成接收完毕触发OnReceiveFileFinished接收完成回调。断开连接清理资源左侧CloseSession关闭这个会话通道、RemoveSessionServer撤销刚才开的柜台。右侧同样进行CloseSession和RemoveSessionServer。为什么要清理手机内存和蓝牙/Wi-Fi资源是有限的如果不“拆除柜台”一直留着传完几个文件手机就会卡死。图片传输建立会话时会话类型为图片传输并且在会话类型里需要带上图片和base64编码。发送和接收端都在图片传输开始时显示图片和视频的略缩图。单图片/单视频传输单图片传输时会话和传输列表只包含一个文件。传输进度按文件发送的字节大小百分比计算取整数。多图片多视频传输多图片传输的时候会话和传输列表只包含多个文件可以使图片和视频混合一起发送传输进度按照文件大小百分比计算取整数。文件传输建立文件传输时会话类型为文件传输会话信息里略缩图类型为空。发送端和接收端在传输时都会显示文件列表。单文件传输单文件传输时会话和传输列表只会包含一个文件传输进度按照文件发送的大小百分比计算取整数。多文件传输多文件传输时会话和传输列表只会包含多个文件传输进度按照文件发送的大小百分比计算取整数。文件目录传输选择文件传输目录的时候单次传输只能选择一个文件夹。取文件夹里的文件列表进行传输文件夹为空的时候不允许传输并提示用户。传输进度按照文件发送的大小百分比计算取整数。