Android 附近连接发送有效负载部分 wifi 感知和蓝牙

Android Nearby Connection send payload partially wifi aware and bluetooth

我正在使用 P2P_POINT_TO_POINT 在两个设备之间发送图像有效负载(也是 STAR,每次有效负载传输,我们都会建立连接并断开连接)。

但是吞吐量比我预期的低很多所以我检查了日志

04-16 10:15:10.456 I 13712    31046    NearbyConnections:                                             Sent FILE data(2686932 bytes) via WIFI_DIRECT used 324 milliseconds, throughput is 7.91 MB/s (8098.63 KB/s), File IO takes 3 ms, Encryption takes 66 ms, Socket IO takes 240 ms [CONTEXT service_id=54 ] 
04-16 10:15:10.456 I 13712    31046    NearbyConnections:                                             Sent FILE data(488182 bytes) via BLUETOOTH used 6498 milliseconds, throughput is 0.07 MB/s (73.37 KB/s), File IO takes 4 ms, Encryption takes 67 ms, Socket IO takes 6404 ms [CONTEXT service_id=54 ] 
04-16 10:15:10.456 I 13712    31046    NearbyConnections:                                             Sent FILE data(3175114 bytes) SUCCEEDED, overall used 7370 milliseconds, throughput is 0.41 MB/s (420.72 KB/s), File IO takes 7 ms, Encryption takes 133 ms, Socket IO takes 6644 ms [CONTEXT service_id=54 ] 

所以附近的连接通过蓝牙发送了部分有效负载,这使得发送有效负载延迟。

有什么解决办法只用wifi发送吗? 由于我们正在使用 'snake' 策略构建应用程序,因此吞吐量很重要。

很遗憾,目前还没有。最好的办法是在连接后的前 ~5 秒内延迟大文件传输。

当我们升级到 WiFi 时,有一个隐藏的 API 会触发回调事件。我已经敦促某人公开揭露这一点,但需要一段时间才能完成正式程序。