通知和断开连接问题

Issue with Notification and Disconnect

我们正在尝试使用您的框架升级现有的应用程序,其他方面工作正常,例如 connection/read/write 但是我们遇到了 Notification/Disconnect

的问题

能否请您指导以下场景:-

  1. 断线需要回拨
  2. 通知无效我们无法收到任何通知提醒
  3. 有没有什么方法可以检查设备的特性,因为我们有不同的设备并且某些特性并不存在于所有设备中,当我们尝试 read/write 设备上不存在的特性时,它会抛出异常和应用程序崩溃

代码:-

connection.writeDescriptor(
    Defs.SVC_AUTOMATIONIO_UUID, 
    Defs.CHAR_AUTOMATION_IO,
    Defs.DESC_CLIENT_CHAR_CONFIGURATION_UUID,
    BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE
)
    .subscribe(
        this::onWriteSuccess,
        this::onWriteFailure
    );

connection.setupNotification(iCharUuid)
    .flatMap(notificationObservable -> notificationObservable)
    .subscribe(
        this::onNotificationReceived,
        this::onConnectionFailure
    );

谢谢 斯瓦扬

通常您不必手动编写描述符来启用通知。图书馆为你做。

尝试:(example)

rxBleConnection.setupNotification(Defs.DESC_CLIENT_CHAR_CONFIGURATION_UUID)
                    .flatMap(notificationObservable -> notificationObservable)
                    .subscribe(this::onNotificationReceived, this::onNotificationSetupFailure);

为了获得断线回调:(example)

  1. 您可以通过 establishConnection 方法观察 onError。
  2. 您可以设置连接状态可观察

bleDevice.observeConnectionStateChanges().subscribe(this::onConnectionStateChange);

要检查特征,您可以使用服务发现:(example)

 bleDevice.establishConnection(this, false)
                .flatMap(RxBleConnection::discoverServices)
                .first() // Disconnect automatically after discovery
                .subscribe(this::processDiscoveredServices, this::onConnectionFailure);