相关疑难解决方法(0)

Nearby Connections 2.0中的错误代码

我一直在尝试新的Android Nearby Connections v2.0 API.我的大多数设备现在可以在大多数时间互相交谈,但在尝试连接时我也会收到很多错误代码.检查status.getStatusCode()我的程序,我可以看到以下返回代码:

  • STATUS_ALREADY_CONNECTED_TO_ENDPOINT(8003)
  • STATUS_BLUETOOTH_ERROR(8007)
  • STATUS_ENDPOINT_IO_ERROR(8012)
  • STATUS_ERROR(13)

我很难理解这些.第一个错误代码似乎是不言自明的,只是在我没有在所谓的连接的任何一侧用"SUCCESS"返回代码命中onConnectionResult回调的情况下我看到它.我当前的代码中充满了跟踪语句,如果已经达到这些回调,我会看到日志记录条目.因此,设备可能在较低级别连接,但如果是这样,则更高级别的代码并不总能听到它.

我猜测STATUS_BLUETOOTH_ERROR表示记录它的一侧有蓝牙错误,而STATUS_ENDPOINT_IO_ERROR表示另一端有错误(可能涉及蓝牙)?是否有可能获得更多细节?我偶尔看到的STATUS_ERROR(13)状态听起来像是程序员用于那些"WTF,我们永远不会到达这里"的错误代码,但是如果没有访问源代码,我只能猜测.

请注意,我在其他时间使用相同代码精确地相互通信的设备之间会看到这些错误.有时,如果代码重试的次数足够多,它最终会获得稳定的连接.有时它会连接并立即从另一端断开连接.有时我只是得到了无休止的重复错误消息(STATUS_BLUETOOTH_ERROR和/或STATUS_ENDPOINT_IO_ERROR).

我正在使用附加连接与连接策略P2P_CLUSTER.当双方同时做广告和发现时,这些问题似乎最常发生.但是,我写了两个较小的程序,专门从事广告或发现,他们有时也会得到这些错误(但不常见).

在跟踪消息中,我还注意到来自Nearby Connections的大量警告消息如下所示:

09-04 22:54:40.070 3866-3924/? W/NearbyConnections: Cannot deserialize BluetoothDeviceName: expecting min 16 raw bytes, got 6
Run Code Online (Sandbox Code Playgroud)

我猜这是因为Nearby Connections使用自己的短令牌(比如ZGbx)而不是设备的蓝牙名称?不过,我对此并不确定.无论如何,如果这些是Nearby Connections自己的特殊令牌,那为什么会发出有关它的警告信息呢?

android bluetooth google-nearby

7
推荐指数
1
解决办法
1830
查看次数

标签 统计

android ×1

bluetooth ×1

google-nearby ×1