0

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

阅读博客RxAndroidBle中的说明

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

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

无论如何,示例应用程序发现了我的 BLE 设备并连接到它,但未能写入它。有没有人有 RxAndroidBle 的经验,请帮忙。

4

1 回答 1

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的未知设备,它需要执行显式发现以将它们呈现给用户。将库与已知设备一起使用时,您可以安全地使用您感兴趣UUIDBluetoothCharacteristics 而不执行发现(它将在任何一种方式下完成,但您不需要显式调用它)。

于 2016-09-30T13:45:43.703 回答