特性中的BLE装置(脉搏计)值始终相同。信号转到onCharacteristicChanged,但该值未更改,尝试以其他方式获取该值。
@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
super.onServicesDiscovered(gatt, status);
BluetoothGattCharacteristic characteristic3 = gatt.getService(UUID.fromString("0000180f-0000-1000-8000-00805f9b34fb"))
.getCharacteristic(UUID.fromString("00002a19-0000-1000-8000-00805f9b34fb"));
gatt.setCharacteristicNotification(characteristic3, true);
gatt.readCharacteristic(characteristic3);
}
@Override
public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
super.onCharacteristicRead(gatt, characteristic, status);
UUID uuid = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");
BluetoothGattDescriptor descriptor = characteristic.getDescriptor(uuid);
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
gatt.writeDescriptor(descriptor);
}
@Override
public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
super.onCharacteristicChanged(gatt, characteristic);
Log.e(TAG, "pulse: " + characteristic.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT8, 0));
}
logcat
最佳答案
决定:
@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
super.onServicesDiscovered(gatt, status);
BluetoothGattCharacteristic characteristic2 = gatt.getService(UUID.fromString("0000180d-0000-1000-8000-00805f9b34fb"))
.getCharacteristic(UUID.fromString("00002a37-0000-1000-8000-00805f9b34fb"));
gatt.setCharacteristicNotification(characteristic2, true);
// 1 !!!!!!
UUID uuid = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");
BluetoothGattDescriptor descriptor = characteristic2.getDescriptor(uuid);
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
gatt.writeDescriptor(descriptor);
// 2 !!!!!!
gatt.readCharacteristic(characteristic2);
}
这个Helped
,更改UUID(it can be found)和lib获取值-SmartGattLib,并且全部正常运行)