使用RxAndroidBle从已连接的设备获取订阅

时间:2018-02-01 17:59:31

标签: android bluetooth rx-java rxandroidble

有没有办法使用RxAndroidBle从已连接的设备获取Subscription?除了断开连接和再次连接外,我似乎找不到办法。

2 个答案:

答案 0 :(得分:1)

您可能对从已连接的设备获取Subscription感兴趣,而不是获取发出的RxBleConnection的实例。

这更像是一个RxJava问题: 您可以获得此类行为(Observable<RxBleConnection>,如果已经发出,则会向任何下一个订阅者发出RxBleConnection,例如使用RxReplayingShare。它看起来像是:

Observable<RxBleConnection> connectionObservable = rxBleDevice.establishConnection(false)
    .compose(ReplayingShare.instance());

然后,connectionObservable的每个订阅者都会获得相同的RxBleConnection,只要它有效。

要小心,因为有时BLE通信实现为有状态(即请求 - 响应模型),这种共享可能会引入一些难以发现的问题。

答案 1 :(得分:0)

No, you need to maintain the rxbleconnection subscription and instance yourself. The library is stateless.