連線到 GATT 伺服器
一旦發現了所需的 BluetoothDevice 物件,就可以使用 connectGatt()
方法連線到它,該方法將 Context 物件作為引數,指示是否自動連線到 BLE 裝置的布林值以及連線事件和客戶端操作結果的 BluetoothGattCallback 引用交付:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
device.connectGatt(context, false, bluetoothGattCallback, BluetoothDevice.TRANSPORT_AUTO);
} else {
device.connectGatt(context, false, bluetoothGattCallback);
}
覆蓋 BluetoothGattCallback 中的 onConnectionStateChange
以接收斷開事件的連線:
BluetoothGattCallback bluetoothGattCallback =
new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status,
int newState) {
if (newState == BluetoothProfile.STATE_CONNECTED) {
Log.i(TAG, "Connected to GATT server.");
} else if (newState == BluetoothProfile.STATE_DISCONNECTED) {
Log.i(TAG, "Disconnected from GATT server.");
}
}
};