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