Nano Hash - криптовалюты, майнинг, программирование

Как совместить обнаружение службы и характеристику чтения с помощью RxAndroidBle

Я новичок в программировании Rx. Теперь я пытаюсь использовать RxAndroidBle для обнаружения сервисов устройств BLE и чтения некоторых характеристик с устройства.

я могу использовать

device.establishConnection(false)
  .flatMap(rxBleConnection -> rxBleConnection.discoverServices());

найти сервисы устройства

и использовать

device.establishConnection(false)
  .flatMap(rxBleConnection -> rxBleConnection.readCharacteristic(characteristicUUID));

читать желаемую характеристику

Но я хотел бы знать, можно ли совместить эти две задачи вместе? Если возможно, как я могу это сделать?

Большое спасибо за ваши советы и помощь!


Ответы:


1

Я вижу, что вы используете вспомогательный метод readCharacteristic(UUID). Вы можете вообще пропустить открытие, и библиотека без проблем сделает это за вас.

Конечно, просто используйте flatMap с zip или опубликуйте с помощью слияния. Есть много способов, но этот простой и глупый.

 bleDevice
     .establishConnection(false)
     .flatMap(connection ->
         Observable.zip(
             connection.readCharacteristic(UUID.randomUUID()).doOnNext(data -> doSomethingWithData(data)),
             connection.discoverServices().doOnNext(services -> doSomethingWithServices(data)),
             Pair::create
         )
      )
      .subscribe();

Было бы лучше, если бы вы могли пройти обучение по RxJava.

11.05.2017
  • Спасибо за ваш ответ! но я также хочу открывать сервисы, а не просто читать характеристики, есть ли способ реализовать это? 11.05.2017
  • Большое спасибо за вашу любезную помощь и предложение! Это помогает заставить его работать! Мне необходимо больше тренироваться на RxJava 12.05.2017
  • используя installConnection, а затем обнаруживая службу, я обнаружил, что иногда она никогда не переходит к обнаружению службы, и onError onCompleted подписчика никогда не произойдет, кажется, что соединение не было установлено, и процесс будет зависать на некоторое время. Меня интересует, есть ли способ ограничить время установления соединения? Большое спасибо! 12.05.2017
  • Я не нахожу Pair в пакете RxJAVA. Как импортировать? 16.09.2019
  • Посмотрите в пакете поддержки Android. 16.09.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..