連線到 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.");
        }
    }
   };