我正在尝试使用在 Android 手机和使用 Android Things 的 Raspberry Pi 上运行的 rxBleAndroid 与 BLE 数据记录器/传感器进行通信。
但是,我目前遇到了一个问题,我的应用程序从未收到最多大约 5 个通知。
我已经验证 BLE 设备实际上已成功发送所有预期的通知。我已经通过 nRF Connect 应用程序做到了这一点,一切都按预期进行。
当我通过 nRF Connect 应用程序执行此操作时,这些是我采取的步骤:
通过 RxAndroidBle 执行此操作时,我怀疑可能是 .subscribe() 设置得不够快。
有没有办法做setupNotification(),然后编写特征来告诉设备开始发送通知?
这是我当前的代码:
rxBleClient = RxBleClient.create(this);
RxBleDevice device = rxBleClient.getBleDevice(mac_address);
device.establishConnection(false)
.flatMap(rxBleConnection -> rxBleConnection.writeCharacteristic(pword_uuid, pword)
.flatMap(ignored1 -> rxBleConnection.writeCharacteristic(mode_uuid, mode))
.flatMap(ignored2 -> rxBleConnection.setupNotification(log_uuid))
)
.flatMap(notificationObservable -> notificationObservable)
.subscribe(
bytes -> {
System.out.println(">>> data from device " + bytesToHex(bytes));
},
throwable -> {
System.out.println("error");
System.out.println(throwable);
});
Run Code Online (Sandbox Code Playgroud) rxandroidble ×1