我有一个Android应用程序,在BluetoothGatt给我一个GATT_SUCCESS后,在onServicesDiscovered()上自动订阅特定的BLE特征。这工作得很好。
后来,我注意到通过BluetoothGatt.connect()使用间接连接重新连接到以前的连接花了太长时间,因此我将其更改为直接连接:device.connectGatt(this,false,mGattCallback)。这在提高重新连接速度方面起到了很大的作用。
问题:现在每当我重新连接时,我都会重新订阅我的所有特征。这导致我每次必须重新连接时再接收一次给定的通知/指示。
所以,如果我重新连接两次并且我要求我的BLE服务器向我发送温度,它会发给我:
25℃
25℃
25℃
我尝试了一些没有运气的事情,包括在重新连接之前将我的BluethoothGatt设置为null,或者在断开连接后禁用一个字符的通知/指示,但我没有运气。提前谢谢。
答案 0 :(得分:2)
我认为您忘记在第一个BluetoothGatt对象上调用close()。