我正在运行RxAndroidBle
中提供的整个示例应用程序,从扫描到发现writeCharacteristic
的服务。我正在尝试调试流程并在onWriteClick()
文件的CharacteristicOperationExampleActivity.java
中放置一个断点。单击WRITE按钮不执行任何操作。突破点没有被抓住。
阅读博客RxAndroidBle
中的说明说明发现特征是可选的写入。但是,这个示例应用程序的活动设置方式,必须先通过发现特征操作页面之前发现特征。在特征页面上,我选择了读/写特征条目以进入操作页面。这不是操作应用程序的正确方法吗?
此外,有没有办法处理writeCharacteristic
而不必发现它的特征?我不想显示特征视图,用户必须选择正确的特性才能读取和写入BLE设备。
在任何情况下,示例应用程序都发现了我的BLE设备并连接到它但是无法写入它。有没有人有RxAndroidBle的经验,请帮助。
答案 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
而不执行发现(它将在任何一种情况下完成,但您不会需要明确地调用它。