Android BLE重新订阅特征

时间:2018-04-18 00:40:46

标签: java android bluetooth-lowenergy

我有一个Android应用程序,在BluetoothGatt给我一个GATT_SUCCESS后,在onServicesDiscovered()上自动订阅特定的BLE特征。这工作得很好。

后来,我注意到通过BluetoothGatt.connect()使用间接连接重新连接到以前的连接花了太长时间,因此我将其更改为直接连接:device.connectGatt(this,false,mGattCallback)。这在提高重新连接速度方面起到了很大的作用。

问题:现在每当我重新连接时,我都会重新订阅我的所有特征。这导致我每次必须重新连接时再接收一次给定的通知/指示。

所以,如果我重新连接两次并且我要求我的BLE服务器向我发送温度,它会发给我:

25℃

25℃

25℃

我尝试了一些没有运气的事情,包括在重新连接之前将我的BluethoothGatt设置为null,或者在断开连接后禁用一个字符的通知/指示,但我没有运气。提前谢谢。

1 个答案:

答案 0 :(得分:2)

我认为您忘记在第一个BluetoothGatt对象上调用close()。