【问题标题】:Android peripheral BLE advertisement sometimes returns an undocumented error codeAndroid 外设 BLE 广告有时会返回未记录的错误代码
【发布时间】:2022-10-17 14:38:35
【问题描述】:

我正在使用 Android BluetoothManager 打开 BluetoothGattServer 并使用 BluetoothLeAdvertiser 做广告。示例 sn-p:

...
AdvertiseData advertiseData = new AdvertiseData.Builder()
                .setIncludeTxPowerLevel(true)
                .addServiceUuid(new ParcelUuid(myServiceUUID))
                .build();
mBluetoothLeAdvertiser.startAdvertising(advertiseSettings, advertiseData, scanResponse, mAdvertiseCallback);

有时,在运行 Android 9 (Droidlogic w400) 的特定设备上,我的mAdvertiseCallback 会收到错误消息: https://developer.android.com/reference/android/bluetooth/le/AdvertiseCallback#onStartFailure(int)

文档声称该代码是“int:广告启动失败的错误代码(请参阅 ADVERTISE_FAILED_* 常量)。”所以我应该对原因有所了解。

但是 ADVERTISE_FAILED_* 常量仅包含值 1-5,而我得到的 int 是 12。

以前有没有人遇到过这样的无证错误代码?不幸的是,我不能说是什么导致了错误。似乎是随机的。大多数时候,我的广告和整个 BLE GATT 服务器都能完美运行。

更新 - 经过一些测试后,我发现我可以通过在从 Android Studio 重新启动 android 应用程序时将中央设备连接到外围设备来重现它。连接回调确认在我初始化 GATT 服务器后立即连接了同一设备。这很好,因为它显示我的中央设备无法响应 android 应用程序关闭,但错误代码仍然有点神秘。

【问题讨论】:

    标签: java android android-bluetooth


    【解决方案1】:

    你解决了这个问题吗?我也遇到了同样的问题,我不知道这个错误代码12,如果你解决了,你能给我一些提示吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多