0

我们正在尝试使用您的框架升级现有应用程序,其他工作正常,例如连接/读/写,但是我们面临通知/断开连接的问题

您能否指导以下情况:-

  1. 需要回电断开连接
  2. 通知不起作用我们无法收到任何通知警报
  3. 有什么方法可以检查设备的特性,因为我们有不同的设备,并且某些特性并非在所有设备中都存在,当我们尝试在设备上读取/写入不存在的特性时,它会引发异常和应用程序崩溃

代码 :-

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
    );

谢谢斯威亚姆

4

1 回答 1

0

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

尝试:(示例)

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

为了获得断开连接的回调:(示例)

  1. establishConnection您可以从方法中观察 onError 。
  2. 您可以设置可观察的连接状态

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

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

 bleDevice.establishConnection(this, false)
                .flatMap(RxBleConnection::discoverServices)
                .first() // Disconnect automatically after discovery
                .subscribe(this::processDiscoveredServices, this::onConnectionFailure);
于 2016-07-26T09:00:38.707 回答