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