RxAndroidBle - долго писать и слушать характеристика уведомления

Я новичок в области android / BLE. Я пытаюсь написать характеристику и прослушать уведомление с помощью библиотеки RxAndroidBle. Я просмотрел множество реализаций, которые кажутся достаточно разными, чтобы мой сценарий работал должным образом. Это сообщение: Нет данных уведомления в настройке записи / уведомления - это почти то, что мне нужно, однако, когда я использую опубликованный код, я не могу захватить какие-либо данные на моем периферийном устройстве, которое, в свою очередь, не возвращает ответ, поскольку я не отправляю ответ. Когда я переключаюсь на построитель длинной записи, я могу писать на свое периферийное устройство и видеть поток данных, но после получения ответа от моего периферийного устройства в моей подписке на уведомления ничего не фиксируется.

Вот мой код:

 private void writeNotify(RxBleDevice peripheral, byte[] payload) {
    Disposable connectionSubscription = peripheral.establishConnection(false)
            .flatMap( // when the connection is available...
                    rxBleConnection -> rxBleConnection.setupNotification(UUID.fromString(notifyCharacteristic)), // ... setup the notification...
                    (rxBleConnection, notifyObservable) -> Observable.combineLatest( // ... when the notification is setup...
                            rxBleConnection.createNewLongWriteBuilder().setBytes(payload).setCharacteristicUuid(UUID.fromString(writecharateristic)).setMaxBatchSize(20).build(), // ... write the characteristic...
                            //rxBleConnection.writeCharacteristic(UUID.fromString(writecharateristic), payload).toObservable(), // ... write the characteristic...
                            notifyObservable, // ... and observe for the first notification on the AP_SCAN_DATA
                            (writtenBytes, responseBytes) -> responseBytes
                    )
            )
            .flatMap(observable -> observable) // ... flatMap the result as it is Observable<byte[]>...// ... and finish after first response is received to cleanup notifications
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                    responseBytes -> {
                        String data = new String(responseBytes);
                    },
                    throwable -> {

                    }
            );
}

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

Не могли бы вы пошагово объяснить, каков предполагаемый сценарий?

Dariusz Seweryn 04.01.2019 12:04
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
288
0

Другие вопросы по теме