Получите частоту сердечных сокращений от часов Mi band 3 через Bluetooth
Здесь моя проблема. Я хочу подключиться к Mi Band 3 (xiaomi) через Bluetooth на Android, в настоящее время я использую RxAndroidBle Lib для подключения к устройству. У меня есть UUID для услуги (частота сердечных сокращений) и для характеристик (измерение частоты сердечных сокращений).
Я знаю MAC-адрес устройства и UUID. UUID: String BASE_UUID = "0000%s-0000-1000-8000-00805f9b34fb"; UUID UUID_SERVICE_HEART_RATE = UUID.fromString((String.format(BASE_UUID, "180D"))); UUID UUID_CHARACTERISTIC_HEART_RATE_MEASUREMENT = UUID.fromString((String.format(BASE_UUID, "2A37")));
Мой текущий код:
private void connect(){
String macAddress = "E9:FD:0C:CB:67:2C";
bleDevice = rxBleClient.getBleDevice(macAddress);
connectDisposable = bleDevice.establishConnection(true)
.subscribe(
rxBleConnection -> {
// All GATT operations are done through the rxBleConnection.
Log.d(TAG, "Is connected");
rxBleConnection.readCharacteristic(UUID_CHARACTERISTIC_HEART_RATE_MEASUREMENT).subscribe(
bytes -> {
Log.d(TAG, "Data " + bytes);
},
throwable -> {
Log.d(TAG, "Error " + throwable.getMessage());
}
);
},
throwable -> {
// Handle an error here.
Log.d(TAG, "Error " + throwable.getMessage());
}
);
}`enter code here`
Я хочу получить байты, после этого преобразовать их в целое число. У кого-нибудь есть идеи, что делать, чтобы получить результаты? Я также хочу получить другие вещи от группы. Для справки я использую этот проект на github. https://github.com/Freeyourgadget/Gadgetbridge
Ошибка, которую я получаю из этого примера кода:
Ошибка GATT исключение из MAC-адреса E9:FD:0C:CB:67:2C, с типом BleGattOperation{description='CHARACTERISTIC_READ'} Ошибка Отключено от E9: FD: 0C: CB: 67: 2C с состоянием -1 (НЕИЗВЕСТНО)