【问题标题】:Nearby Connections disconnects when sending (larger) file payloads发送(更大)文件有效负载时附近的连接断开连接
【发布时间】:2018-09-02 19:16:22
【问题描述】:

我正在使用 Nearby Connections 2.0 开发离线照片传输应用程序。广告、发现、发送字节有效负载、Google 示例应用程序(RockPaperScissors 和 WalkieTalkie)都可以正常工作,但我有 2 个问题。

首先也是最重要的是,在设备之间成功启动连接后,我发送一个字节有效负载以从广告客户设备发出“拍照”命令,发现者接收有效负载并拍照,然后将该照片作为广告客户发送给广告客户文件有效载荷。问题出现在这里,因为当发现者发送文件有效负载时,设备经常断开连接,甚至在调用广告商的 onPayloadReceived 方法之前。我尝试将照片的大小减小到 30kB,但这很少能解决问题。当我切换设备时,使旧广告商成为新发现者,旧发现者成为新广告商,即使不减小有效负载的大小,问题也不会经常发生(大约 30kb 的有效负载几乎不会在设备切换时给我这个问题)。我从附近获得的唯一日志是:

连接启动时记录第一行,设备断开连接时记录第二行。

其次,发现和连接初始化有时需要几分钟,但很少超过 30 秒。当它们这样做时,我会在日志中收到以下错误:

两台设备都运行 Android 6.0.1,并且在同一个网络上。我使用明星策略。问题设备是联想P1A41,其他设备是LG X-screen(K500)。

【问题讨论】:

    标签: android google-nearby


    【解决方案1】:

    您能否尝试在这些设备上运行 our sample apps 以查看它们是否按预期工作?我们会定期在 Nearby Connections 上传输 10 MB 的数据,因此我想排除您正在使用的手机上的任何硬件问题。

    顺便说一句,您使用的是哪款手机(哪一款是这两款手机中更成问题的一款)?

    附: Nearby Connections 不需要在同一个网络上——我们完全离线和 P2P。

    【讨论】:

    • 首先,WiFi连接失败只是意味着您将无法获得更高的带宽,但蓝牙连接仍然应该建立,并且应该能够发送您的FILE Payload(虽然速度较慢速度)而不需要长时间的连接建立延迟(WiFi 升级在后台以非阻塞方式发生)——这就是您所看到的吗?
    • 另外,如果您能够维持与 WalkieTalkie(使用 STREAM Payloads)的会话超过一分钟或两分钟,并且数据在双方之间发送,这表明您可能有导致断开连接的代码中的竞争条件。
    • 能否尝试使用P2P_CLUSTER作为策略,看看是否还会出现断线问题?
    • 至于你的第一条评论,我不明白你在问什么。我没有测试速度,但如果有帮助,我可以测试它。我能够维持一分钟以上的对讲机会话。我无法获得在设备之间连接的集群策略(我无法解决为什么它无法连接,尽管我已经尝试了其他 2 台设备,总共 4 台),但是我在 4 部不同的手机上尝试了该应用程序(2 对) 那么我在问题中提到的那些问题仍然存在。
    • WiFi 评论是关于你的第二个问题(关于建立连接的延迟)——让我们暂时讨论这个问题。 CLUSTER 和 STAR 使用完全相同的连接方法(BT Classic 和 BLE),所以我无法解释为什么一个有效而另一个无效,抱歉。
    猜你喜欢
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多