Получайте одновременные уведомления по нескольким характеристикам с одного сервера ⇐ Android
Получайте одновременные уведомления по нескольким характеристикам с одного сервера
Я пытаюсь воспроизвести проект приложения для Android, не имея большого опыта разработки Android или Bluetooth. В коде первоначальный автор собрал данные по двум характеристикам (поступившим от одного сервиса) и отобразил их в режиме реального времени. В исходном коде автор использует следующий фрагмент кода для создания уведомлений о характеристиках и получения обоих данных.
@Override public void onServicesDiscovered (BluetoothGatt gatt, int status) { BluetoothGattServicehandservice=gatt.getService(handserviceuuic); BluetoothGattCharacteristic plethchar=handservice.getCharacteristic(handcharuuic); BluetoothGattCharacteristicpulsar=handservice.getCharacteristic(pulseuuic); gatt.setCharacteristicNotification(plethchar, true); gatt.setCharacteristicNotification(pulsechar,true); } @Override public void onCharacteristicChanged (BluetoothGatt gatt, характеристика BluetoothGattCharacteristic{ байт [] чтение = характеристика.getValue(); если (startbutton.isChecked() == true) { if(characteristic.getUuid().toString().equals("ec0a883a-4d24-11e7-b114-b2f933d5fe66")){ плетобработка стопы (чтение); } еще{ обработка импульсов стопы (чтение); } } } Когда я применяю этот код на своем телефоне, я получаю уведомление только о первой характеристике, поскольку единственный UUID, возвращаемый функцией characteristic.getUuid(), — это идентификатор первой характеристики. Если я закомментирую код первой характеристики, то смогу получить уведомление о второй характеристике. Как я могу изменить этот код, чтобы получать уведомления об обеих характеристиках?
Я пытаюсь воспроизвести проект приложения для Android, не имея большого опыта разработки Android или Bluetooth. В коде первоначальный автор собрал данные по двум характеристикам (поступившим от одного сервиса) и отобразил их в режиме реального времени. В исходном коде автор использует следующий фрагмент кода для создания уведомлений о характеристиках и получения обоих данных.
@Override public void onServicesDiscovered (BluetoothGatt gatt, int status) { BluetoothGattServicehandservice=gatt.getService(handserviceuuic); BluetoothGattCharacteristic plethchar=handservice.getCharacteristic(handcharuuic); BluetoothGattCharacteristicpulsar=handservice.getCharacteristic(pulseuuic); gatt.setCharacteristicNotification(plethchar, true); gatt.setCharacteristicNotification(pulsechar,true); } @Override public void onCharacteristicChanged (BluetoothGatt gatt, характеристика BluetoothGattCharacteristic{ байт [] чтение = характеристика.getValue(); если (startbutton.isChecked() == true) { if(characteristic.getUuid().toString().equals("ec0a883a-4d24-11e7-b114-b2f933d5fe66")){ плетобработка стопы (чтение); } еще{ обработка импульсов стопы (чтение); } } } Когда я применяю этот код на своем телефоне, я получаю уведомление только о первой характеристике, поскольку единственный UUID, возвращаемый функцией characteristic.getUuid(), — это идентификатор первой характеристики. Если я закомментирую код первой характеристики, то смогу получить уведомление о второй характеристике. Как я могу изменить этот код, чтобы получать уведомления об обеих характеристиках?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение