私はプロジェクトに RxAndroidBle を使用しています。ble デバイスからいくつかの特性を読み取り、それらを画面に表示する必要があります。以下のコードは、this::displayCharacteristics
private void readCharacteristics() {
mConnectionObservable.flatMap(rxBleConnection -> Observable.combineLatest(
rxBleConnection.readCharacteristic(UUID_SERIAL_NUMBER),
rxBleConnection.readCharacteristic(UUID_MACHINE_TYPE),
rxBleConnection.readCharacteristic(UUID_CHARACTERISTIC),
ConnectedViewModel::new
).doOnError(this::logError)
).doOnError(this::logError)
.subscribe(this::displayCharacteristics, this::logError);
}
private void displayCharacteristics(ConnectedViewModel model) {
mSerialNumber.setText(model.getSerialNumber());
mMachineType.setText(model.getMachineType());
mCableLength.setText(model.getCableLength());
mCableSize.setText(model.getCableSize());
mUnits.setText(model.getUnits());
}
これは、CalledFromWrongThreadException
実行時のためですthis::displayCharacteristics
。フラグメントがオンになっているスレッドにデータを表示する適切な方法は何ですか? リスナーを使用する必要がありますか? ありがとう!