Я хочу получить значение HRM устройства «A D UA-651BLE». это то, что написано в спецификации этого устройства, чтобы получить значение HRM:Android bluetooth получить измерение сердечного ритма
- Установите приложение в режим сопряжения, чтобы начать сканирование.
- Начните сопряжение устройства A & D BLE после каждого руководства по эксплуатации.
- В режиме сопряжения приложение должно установить время и дату и любые другие настройки устройства - A & Устройство D BLE. После успешного соединения A & Устройство D BLE показывает «Конец» на экране.
- Провести измерение и закончить измерение, затем A & D BLE начало устройства BLE Связь с рекламой. Приложение начинает сканирование с подходящим интервалом, так что приложение захватывает рекламу устройства A & D BLE, как только оно может.
- При первоначальном соединении или сопряжении приложение устанавливает «2» в CCCD (характеристика клиента Конфигурационный дескриптор), так что устройство A & D BLE отправляет данные измерений с помощью Индикация.
- После A & Устройство D распознает установку «2» в CCCD и синхронизирует время и дату в течение 5 секунд после подключения, отправьте данные с помощью индикатора.
- Если тайм-аут установлен CCCD и время и дата истекли, A & Устройство D BLE не отправит данные и сохранит данные в памяти. Сохраненные данные в A & Устройство D BLE может отправить следующее успешное соединение.
это мой код услуги:
public void setCharacteristicNotification(BluetoothGattCharacteristic characteristic,
boolean enabled) {
if (mBluetoothAdapter == null || mBluetoothGatt == null) {
Log.w(TAG, "BluetoothAdapter not initialized");
return;
}
mBluetoothGatt.setCharacteristicNotification(characteristic, enabled);
// This is specific to Heart Rate Measurement.
if (UUID_HEART_RATE_MEASUREMENT.equals(characteristic.getUuid())) {
BluetoothGattDescriptor descriptor = characteristic.getDescriptor(
UUID.fromString(SampleGattAttributes.CLIENT_CHARACTERISTIC_CONFIG));
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
mBluetoothGatt.writeDescriptor(descriptor);
}
}
и это метод, который читать данные:
final byte[] data = characteristic.getValue();
if (data != null && data.length > 0) {
final StringBuilder stringBuilder = new StringBuilder(data.length);
for(byte byteChar : data)
stringBuilder.append(String.format("%02X ", byteChar));
Log.e("HRM value",stringBuilder.toString());
dataComposition.put(characteristic.getUuid().toString(),stringBuilder.toString());
intent.putExtra(EXTRA_DATA,dataComposition);
}
проблема заключается в том, что этот код не возвращает никаких данных! !
Вот что я искал. благодаря –