android - RxAndroidBle 连接超时

标签 android bluetooth-lowenergy rxandroidble

我正在连接到一个已发现的设备并定期读取 RSSI。我需要确切知道连接何时丢失。有什么方法可以指定连接超时,之后我将收到 RxBleConnectionState.DISCONNECTED?现在,即使连接的设备已关闭,我仍然从 rxBleConnection.readRssi() 接收 rssi。

我应该使用 Proximity 蓝牙配置文件中的链路丢失服务而不是连接超时吗?

我的代码:

device1ConnectionSubscription = device.establishConnection(false)
        .doOnUnsubscribe(this::clearDevice1Subscription)
        .observeOn(AndroidSchedulers.mainThread())
        .flatMap(rxBleConnection ->
                Observable.interval(500, TimeUnit.MILLISECONDS)
                        .flatMap(sequence -> rxBleConnection.readRssi())
                        .observeOn(AndroidSchedulers.mainThread())
        )
        .subscribe(this::updateDevice1Rssi, this::onConnectionFailure);


device1ConnectionStateChangesSubscription = device.observeConnectionStateChanges()
        .doOnUnsubscribe(() -> device1ConnectionStateChangesSubscription = null)
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(
            connectionState -> {
                switch(connectionState)
                {
                    case DISCONNECTING:
                    case DISCONNECTED:
                        if(device1ConnectionSubscription != null) {
                            device1ConnectionSubscription.unsubscribe();
                        }
                        device1ConnectionStateChangesSubscription.unsubscribe();
                        break;
                }
            },
            throwable -> { }
        );

最佳答案

您正在寻找的参数是连接监督超时。这个参数是由设备控制的,我想,不能在你的手机上设置。

关于android - RxAndroidBle 连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45811493/

相关文章:

android - Kotlin 协同程序 - 如果一段时间后第一个任务没有完成,则开始另一个任务

android - 与安卓的蓝牙连接

ios - Mi Band 1S 在 iOS 上处理来电时振动

android - RxAndroidBle 更快地接收通知

android - Rxandroid ble 重连处理指南

android - java.lang.IllegalArgumentException : GoogleApiClient parameter is required 异常

android - Dagger 2 : ViewModel cannot be provided without an @Provides-annotated method

android - Place Picker 在启动后关闭

Android,如何将 BLE 设备制作成配对设备(绑定(bind))

rx-java - 如何以线性方式连接两个可观察的操作(先做这件事,然后做第二件事)?