2016-09-29 5 views
0

Я запускаю все примерное приложение, представленное в RxAndroidBle, из сканирования, чтобы обнаружить службы до writeCharacteristic. Я пытаюсь отлаживать поток и помещать точку останова в onWriteClick() файла CharacteristicOperationExampleActivity.java. Нажатие кнопки WRITE ничего не делает. Точка останова не была поймана.RxAndroidBle rxBleConnection.writeCharacteristic

Чтение инструкции из блога RxAndroidBle

Заявив, что обнаружение характеристики не является обязательным для записи. Но способ настройки этого примера приложения, нужно дойти до обнаружения характеристик до того, как будет показана страница «Экспресс-характеристики». На странице характеристик я выбрал запись для чтения/записи, чтобы перейти на страницу «Операция». Разве это не правильный способ управлять приложением?

Кроме того, существует ли способ обработки writeCharacteristic без необходимости раскрывать его характеристики? Я не хочу показывать характерный вид, и пользователь должен выбрать правильный признак, чтобы читать и записывать на устройство BLE.

В любом случае образец приложения обнаружил мое устройство BLE и подключился к нему, но он не смог его записать. Кто-нибудь имеет опыт работы с RxAndroidBle, пожалуйста, помогите.

ответ

0

В примере есть ошибка: я не мог заставить ее работать (несмотря на то, что кнопки были отключены) - нужно будет изучить ее. Что касается быстрых решений, вы можете заменить метод onConnectToggleClick() с:

@OnClick(R.id.connect) 
public void onConnectToggleClick() { 

    if (isConnected()) { 
     triggerDisconnect(); 
    } else { 
     connectionObservable 
       .observeOn(AndroidSchedulers.mainThread()) 
       .doOnSubscribe(() -> connectButton.setText("Connecting")) 
       .subscribe(
         rxBleConnection -> { 
          Log.d(getClass().getSimpleName(), "Hey, connection has been established!"); 
          updateUI(); 
         }, 
         this::onConnectionFailure 
       ); 
    } 
} 

Образец приложение не предназначено для запуска с любым конкретным BLE устройством так, чтобы показать, возможно BluetoothCharacteristic сек неизвестного устройства он должен выполнить явное открытие, чтобы представить их пользователю. При использовании библиотеки с известным устройством вы можете безопасно использовать UUID s из BluetoothCharacteristic, который вас интересует, не выполняя обнаружение (это будет сделано под любым способом, но вам не нужно его явно указывать).

+0

OK, это работает. Я не понял один раз на странице Operation образцового приложения, мне нужно нажать кнопку CONNECT, прежде чем я смогу записать устройство BLE. Для чего этот уровень связи? Первоначально я думал, что, как только устройство будет обнаружено и связано с объектом rxBleConnection, мы готовы пойти на чтение/запись на устройство. –

+0

Конечно, вы правы, но в образце приложения каждое действие обрабатывает соединение самостоятельно. Если действие приостановлено, соединение закрывается. –

+0

Также, как я могу упростить этот код, автоматически выполнив соединение без этого дополнительного шага с помощью кнопки подключения на странице операции? –

Смежные вопросы