Как название,
Для простоты, если я хочу дважды выполнить операцию чтения с другим UUID:
(Я знаю, что RxAndroidBle предоставил функцию многократного чтения)
Observable<RxBleConnection> ob = device.establishConnection(false);
ob.flatMap(rxBleConnection -> rxBleConnection.readCharacteristic(CHAR_WIFI_SSID))
.subscribe(
characteristicValue -> {
//2. then read Successfully here !!!!!
},
throwable -> {
}
);
ob.flatMap(rxBleConnection -> rxBleConnection.readCharacteristic(CHAR_WIFI_SECURITY_MODE))
.subscribe(
characteristicValue -> {
},
throwable -> {
//1. I got BleAlreadyConnectedException error first !!!!
}
);
Почему второй subscribe() получает BleAlreadyConnectedException?
==========обновление==========
я нашел решение, если я изменю
device.installConnection(false) ==> device.installConnection(false).compose(new ConnectionSharingAdapter())
ConnectionSharingAdapter сделает что-то вроде этого:
sourceObservable.replay(1).refCount();
сохранить последний излучаемый источником наблюдаемым
Observable.share
. - person Dean Xu   schedule 19.06.2017