3.处理连接后的回调事件
在上面的连接设备方法中,有一个很关键的参数mGattCallback,这个是用来接收蓝牙连接的各类回调事件的,我们主要的业务逻辑都会在此处理:连接成功后的服务通道获取、认证、断开连接处理、指令发送与接收回调、信号强度变化等等。
其对应的代码如下,其实根据BluetoothGattCallback需要重写的方法名称,也能大概知道其作用:
private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() { @Override public void onCharacteristicChanged(final BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic) { dealWithData(gatt, characteristic); } @Override public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { if (status == BluetoothGatt.GATT_SUCCESS) { dealWithData(gatt, characteristic); } else { BuglyLog.e(TAG, "读取通道信息失败:" + characteristic.getUuid()); } } @Override public void onConnectionStateChange(final BluetoothGatt gatt, final int status, final int newState) { if (newState == BluetoothProfile.STATE_CONNECTED) { BuglyLog.i(TAG, "BluetoothGatt连接上,MAC:" + gatt.getDevice().getAddress()); gatt.discoverServices(); mBluetoothGatts.put(gatt.getDev