RxAndroidBle rxBleConnection.writeCharacteristic

RxAndroidBle rxBleConnection.writeCharacteristic

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

正在阅读博客中的说明RxAndroidBle

说明发现特征对于写入是可选的。但是这个示例应用程序的活动设置方式,必须在显示特征操作页面之前通过发现特征。在特性页面,我选择了read/write特性入口,进入了操作页面。这不是操作应用程序的正确方法吗?

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

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

示例中似乎存在错误 - 我无法让它工作(尽管连接按钮被禁用) - 需要调查它。 至于快速修复,您可以将 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 未知设备,它需要执行显式发现以将它们呈现给用户.将库与已知设备一起使用时,您可以安全地使用您感兴趣的 UUIDs 或 BluetoothCharacteristics 而无需执行发现(它将在任何一种方式下完成,但您不需要调用它明确地)。