0

策略是:点对点策略

连接客户端为每个文件有效负载完成提供回调,但我从文件夹发送文件组,但我需要知道每个文件传输何时完成,以便我可以更新 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()

           }
4

0 回答 0