1. 程式人生 > >藍芽bluetoothGatt.disconnect()和bluetoothGatt.close()兩個方法的區別

藍芽bluetoothGatt.disconnect()和bluetoothGatt.close()兩個方法的區別

在進行BLE開發過程中可能會遇到操作失敗等情況,這個時候可能需要斷開與BLE的連線或者清理相關資源.在BluetoothGatt類中有兩個相關的方法
1. disconnect()
2. close()
那麼這個兩個方法有什麼區別,又該如何使用呢.

disconnect()方法: 如果呼叫了該方法之後可以呼叫connect()方法進行重連,這樣還可以繼續進行斷開前的操作.

close()方法: 一但呼叫了該方法, 如果你想再次連線,必須呼叫BluetoothDevice的connectGatt()方法. 因為close()方法將釋放BluetootheGatt的所有資源.

需要注意的問題:
當你需要手動斷開時,呼叫disconnect()方法,此時斷開成功後會回撥onConnectionStateChange方法,在這個方法中再呼叫close方法釋放資源。
如果在disconnect後立即呼叫close,會導致無法回撥onConnectionStateChange方法。