При установлении соединения я использовал свойство .asObservable()
, чтобы оставаться на связи.
bleDevice = rxBleDevice;
rxBleDevice.establishConnection(false)
.flatMap(RxBleConnection::discoverServices)
**.asObservable()**
.subscribe(rxBleDeviceServices -> swapScanResult(rxBleDeviceServices));
После установления соединения, когда я пытался прочитать значения, оно показывает
Уже подключено к устройству
bleDevice.establishConnection(false)
.flatMap(rxBleConnection -> Observable.combineLatest(
rxBleConnection.readCharacteristic(gattCharacteristicList.get(6).getUuid()),
rxBleConnection.readCharacteristic(gattCharacteristicList.get(7).getUuid()),
ReadValuesOnConnection::new
))
.subscribe(
readValuesOnConnection -> Log.i("UUid 6 Value: ", readValuesOnConnection.value_1+""),
throwable -> Log.e("Error", throwable.getMessage())
);
Журналы:
I/Bluetooth Enable: True
I/RxBle#QueueOperation: Scan operation is requested to start.
I/Scan Results:: 6Q:6C:05:8E:F5:5B
I/Scan Results:: 6P:6A:05:8E:F8:2X
I/RxBle#CancellableSubscription: Scan operation is requested to stop.
W/zygote64: Suspending all threads took: 5.645ms
I/Characteristics List size:: 33
E/Error: Already connected to device with MAC address 6Q:6C:05:8E:F5:5B
Я просматриваю пример проекта, но не нашел решения.