RxAndroidBle rxBleConnection.writeCharacteristic

时间:2016-09-29 21:39:11

标签: rxandroidble

我正在运行RxAndroidBle中提供的整个示例应用程序,从扫描到发现writeCharacteristic的服务。我正在尝试调试流程并在onWriteClick()文件的CharacteristicOperationExampleActivity.java中放置一个断点。单击WRITE按钮不执行任何操作。突破点没有被抓住。

阅读博客RxAndroidBle

中的说明

说明发现特征是可选的写入。但是,这个示例应用程序的活动设置方式,必须先通过发现特征操作页面之前发现特征。在特征页面上,我选择了读/写特征条目以进入操作页面。这不是操作应用程序的正确方法吗?

此外,有没有办法处理writeCharacteristic而不必发现它的特征?我不想显示特征视图,用户必须选择正确的特性才能读取和写入BLE设备。

在任何情况下,示例应用程序都发现了我的BLE设备并连接到它但是无法写入它。有没有人有RxAndroidBle的经验,请帮助。

1 个答案:

答案 0 :(得分:0)

示例中似乎有一个错误 - 我无法使其工作(尽管连接按钮被禁用) - 需要查看它。 至于快速修复,您可以将onConnectToggleClick()方法替换为:

@OnClick(R.id.connect)
public void onConnectToggleClick() {

    if (isConnected()) {
        triggerDisconnect();
    } else {
        connectionObservable
                .observeOn(AndroidSchedulers.mainThread())
                .doOnSubscribe(() -> connectButton.setText("Connecting"))
                .subscribe(
                        rxBleConnection -> {
                            Log.d(getClass().getSimpleName(), "Hey, connection has been established!");
                            updateUI();
                        },
                        this::onConnectionFailure
                );
    }
}

示例应用程序不应与任何特定的BLE设备一起运行,以便显示可能需要执行显式发现以将其呈现给用户的未知设备的BluetoothCharacteristic。将图书馆与已知设备一起使用时,您可以安全地使用UUID个您感兴趣的BluetoothCharacteristic而不执行发现(它将在任何一种情况下完成,但您不会需要明确地调用它。