RxAndroidBle多个特征通知和读/写

时间:2017-04-27 20:41:27

标签: android rx-java rx-android rxandroidble

我在设置多个特征的通知时遇到问题。 我已经查看了文档,许多示例仅涵盖非常精细的情况。

我的用例如下: 1.扫描设备 2.用户选择要连接的设备(连接持续到应用程序关闭) 3.订阅许多特征的通知 4.一次读/写单个特性,在某些情况下一次读/写多个特性

2 个答案:

答案 0 :(得分:0)

我现在就开始工作了。问题是我需要使用RxBleConnection的实例来进行后续连接

答案 1 :(得分:0)

这是我多次写入的解决方案

 mConnObservable.flatMap(rxBleConnection -> {
        return rxBleConnection.writeCharacteristic(SSID, mSsidView.getText().toString().getBytes())
                .flatMap(ssidBytes -> rxBleConnection.writeCharacteristic(SSID2, mPassPhrase.getText().toString().getBytes())
                .flatMap(ssid2Bytes -> rxBleConnection.writeCharacteristic(SSID3, mSecurityModeSpinner.getSelectedItem().toString().getBytes())));
    })
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(ssid3Bytes -> {
               //do something
            }, this::onError, this::onComplete);

你应该将其他flatMap操作放在第一个flatMap中,因为你只能在第一个flatMap中获得rxBleConnection