通知和断开连接问题
Issue with Notification and Disconnect
我们正在尝试使用您的框架升级现有的应用程序,其他方面工作正常,例如 connection/read/write 但是我们遇到了 Notification/Disconnect
的问题
能否请您指导以下场景:-
- 断线需要回拨
- 通知无效我们无法收到任何通知提醒
- 有没有什么方法可以检查设备的特性,因为我们有不同的设备并且某些特性并不存在于所有设备中,当我们尝试 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)
- 您可以通过
establishConnection
方法观察 onError。
- 您可以设置连接状态可观察
bleDevice.observeConnectionStateChanges().subscribe(this::onConnectionStateChange);
要检查特征,您可以使用服务发现:(example)
bleDevice.establishConnection(this, false)
.flatMap(RxBleConnection::discoverServices)
.first() // Disconnect automatically after discovery
.subscribe(this::processDiscoveredServices, this::onConnectionFailure);
我们正在尝试使用您的框架升级现有的应用程序,其他方面工作正常,例如 connection/read/write 但是我们遇到了 Notification/Disconnect
的问题能否请您指导以下场景:-
- 断线需要回拨
- 通知无效我们无法收到任何通知提醒
- 有没有什么方法可以检查设备的特性,因为我们有不同的设备并且某些特性并不存在于所有设备中,当我们尝试 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)
- 您可以通过
establishConnection
方法观察 onError。 - 您可以设置连接状态可观察
bleDevice.observeConnectionStateChanges().subscribe(this::onConnectionStateChange);
要检查特征,您可以使用服务发现:(example)
bleDevice.establishConnection(this, false)
.flatMap(RxBleConnection::discoverServices)
.first() // Disconnect automatically after discovery
.subscribe(this::processDiscoveredServices, this::onConnectionFailure);