小编Jam*_*s E的帖子

如何在 RxAndroidBle 中接收所有通知

我正在尝试使用在 Android 手机和使用 Android Things 的 Raspberry Pi 上运行的 rxBleAndroid 与 BLE 数据记录器/传感器进行通信。

但是,我目前遇到了一个问题,我的应用程序从未收到最多大约 5 个通知。

我已经验证 BLE 设备实际上已成功发送所有预期的通知。我已经通过 nRF Connect 应用程序做到了这一点,一切都按预期进行。

当我通过 nRF Connect 应用程序执行此操作时,这些是我采取的步骤:

  1. 写入密码特征以解锁设备
  2. 写入模式特性以将设备置于正确模式
  3. 订阅通知(通知立即开始工作)

通过 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

5
推荐指数
1
解决办法
1407
查看次数

标签 统计

rxandroidble ×1