Nearby Connections 2.0:双方都请求连接,但没有连接成功

Nearby Connections 2.0: Both sides request connections, but don't successfully connect

我正在尝试将新的 Android Nearby Connections v2.0 API 与 P2P_CLUSTER 连接策略结合使用。以下问题(其中两个设备都请求连接,但未成功连接)似乎出现在各种设备上 运行 Android K-N。有时代码会获得成功的持久连接...有时不会。

在这个场景中,双方都在广播和发现,双方都发现对方,双方都发送连接请求(但没有发起连接)。很难用特定的测试用例使这种情况可靠地发生,但它确实发生了。

使用 Android 监视器,我从一方面捕获了有关此场景的详细信息,并在下面列出了事件的顺序。在这个特定的会话中,我监视的设备是一个非常便宜的 KitKat phone,远程端点是一个三星棒棒糖平板电脑(以防万一)。

这是同时发生的连接冲突;如果您有 2 个设备同时相互连接,则在第二个设备在两个设备上触发 onConnectionInititated() 之前,Nearby Connections 将(随机)使其中一个设备的 requestConnection() 失败。这就是您在第一个日志中看到 "java.io.IOException: bt socket closed, read return: -1" 的原因。

如果不是 STATUS_BLUETOOTH_ERROR 次失败,您应该会看到两台设备成功连接。