我正在寻求帮助,以找到解决方法,该问题似乎是三星 S5 和 Note 4 设备最近的安全更新导致 BLE 设备无法连接的问题。该更新由 Verizon 于 8 月初分发,安全更新日期为:2017 年 7 月 1 日,内部版本号以 DQF2 结尾。我们无法从具有此特定更新的手机连接到我们的 BLE 设备。
BLE 连接是在扫描并找到设备后建立的。扫描工作正常,设备正常找到,但连接无处可去。它是这样完成的:
BluetoothDevice device = mBtAdapter.getRemoteDevice(address);
device.connectGatt(context, true, btGattCallback);
但是,我没有从回调中得到任何更新,永远不会通知 autoConnect = true 的连接,并且在 autoConnect = false 的情况下,回调只会获得连接更新,说明它已断开连接(永远不会进入连接状态)。
在此更新之前,连接非常可靠,但自更新以来 100% 的时间都失败了。即使对手机和 BLE 设备进行硬重置,它仍然无法连接。
我已经尝试过不同的事情,比如在主线程上建立连接,确保 BLE 扫描在连接之前停止(我们已经这样做了,但我也添加了一些额外的延迟以防出现竞争情况)。我在不同部分添加了延迟,并尝试了开启和关闭自动连接,但到目前为止没有运气。
这绝对是三星的问题,我可以看到FitBit 论坛上充斥着遇到此问题的用户,虽然我们的产品没有 FitBit 那样大的基础,但它影响了很多人。
我能从 logcat 中找到的唯一有趣的事情包括:
08-12 14:11:17.848 4412-4602/? D/bt_upio: upio_set : pio 0 action 2, polarity 1
08-12 14:11:17.848 4412-4602/? D/bt_upio: BT_WAKE is asserted already
08-12 14:11:17.848 4412-4597/? D/BtGatt.GattService: [GSIM LOG]: increaseScanCount 4 Battery : com.myapp.internal.debug : 7
08-12 14:11:17.858 4412-4556/? D/bt_btif_gattc: btif_gattc_update_properties BLE device name=Axon-X81001976 len=14 dev_type=2
08-12 14:11:17.858 4412-4556/? E/bt_btif: property type:241, len:0 is invalid
08-12 14:11:17.858 4412-4556/? E/bt_btif_dm: ### ASSERT : system/bt/main/../btif/src/btif_dm.c line 4655 failed to save remote device manufacturer (1) ###
其他相关主题:
有没有人找到在这些设备上建立有效 BLE 连接的方法?