文件组传输后如何从附近的连接客户端获取完成更新

问题描述

策略是:点对点策略

连接客户端为每个文件有效负载完成提供回调,但我从文件夹发送文件组,但我需要知道每个文件传输何时完成,以便我可以更新 UI。附近的连接 api 是否有任何方法可以用来检查是否仍有传输正在进行。如果没有,处理这个问题的最佳方法是什么?

Edit1:我想过将文件计数作为字节发送,然后开始文件传输并比较调用 processfile 方法调用两次 onpayloadtransfreupdate() 的次数文件文件名),如果它们匹配。收到所有文件。但我希望有更具体的方法来处理这个问题。

Edit2:既然我知道相同的文件类型保证按顺序到达,我还可以在最后发送一个虚拟文件负载,并在 onpayloadstatusupdate() 中等待该负载知道我的传输已完成。

另一方面,附近的连接 api 对我的用例是否可靠(发送多个文件,一对一策略),我应该改用 wifi 直接对等 api 吗?

val files = folder.listFiles()
       for (file in files){
           sendFile(file,file.name)
       }

// in sendFile method()
     try {
               val filePayload: Payload = Payload.fromFile(file)
               val filename = filePayload.id.toString() + ":"+ fileName
               mEndPoint?.id?.let {
                   mConnectionsClient?.sendPayload(
                       it,Payload.fromBytes(filename.toByteArray(StandardCharsets.UTF_8)))

                   mConnectionsClient?.sendPayload(it,filePayload)
               }

           } catch (e: FileNotFoundException) {
               Toast.makeText(myapplication.applicationContext,"file not found",Toast.LENGTH_SHORT).show()

           }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)