I'm trying to develop a simple Wear Os application to receive data from Arduino.
I'm using an Arduino Nano 33 BLE and a Smartwatch Fossil.
In my Arduino code I have: characteristic.writeValue(data, DATA_SIZE);
.
Data is sent every 10 ms, but I can read data every 100ms on Android Studio.
BluetoothGattCallback gattCallback = new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
if (newState == BluetoothProfile.STATE_CONNECTED){
gatt.discoverServices();
}
else {
gatt.disconnect();
}
}
@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
BluetoothGattCharacteristic characteristic = gatt.getService(ARDUINO_SERVICE_UUID).getCharacteristic(IMU_DATA_UUID);
gatt.setCharacteristicNotification(characteristic,true);
BluetoothGattDescriptor descriptor = characteristic.getDescriptor(CLIENT_CHARACTERISTIC_CONFIG_UUID);
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
gatt.writeDescriptor(descriptor);
}
@Override
public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
gatt.readCharacteristic(characteristic);
}
@Override
public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
super.onCharacteristicRead(gatt, characteristic, status);
//here will should receive data
byte[] data = characteristic.getValue(); // Get the stored value for this characteristic.
System.out.println(System.currentTimeMillis());
}
};
question from:
https://stackoverflow.com/questions/66049986/android-studio-read-characteristics-faster 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…