连接到 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.");
}
}
};