当前位置: 首页 > 知识库问答 >
问题:

从通知中获取关贸总协定的特征

乐成济
2023-03-14

我使用RxAndroidBle与kotlin。到目前为止,我可以设置多个通知,我正在接收它们。

如何将通知映射到其特定特征?

到目前为止:

enter code here connectionObserver
            .flatMap { rxBleConnection ->
                rxBleConnection.discoverServices().flatMap { services -> services.getService(ServiceUUID).map(BluetoothGattService::getCharacteristics) }
                        .flatMapObservable { s -> fromIterable(s) }
                        .flatMap { characteristic -> rxBleConnection.setupNotification(characteristic)
                                .flatMap{ notificationObservable -> notificationObservable}}
            }.observeOn(AndroidSchedulers.mainThread())
            .subscribe{notification->notification}

谢谢你

共有1个答案

吴展
2023-03-14

对于那些与kotlin和RxAndroid蓝牙斗争的人,经过一些工作后,我让它工作,所以原始代码看起来像

enter code here  connectionObserver
            .flatMap { rxBleConnection ->
                rxBleConnection.discoverServices().flatMap { services -> services.getService(ServiceUUID).map(BluetoothGattService::getCharacteristics) }
                        .flatMapObservable { s -> fromIterable(s) }
                        .flatMap { characteristic ->
                            rxBleConnection.setupNotification(characteristic)
                                    .flatMap { notificationObservable -> notificationObservable.flatMap { result -> Observable.just(result).zipWith(fromArray(getBytesFromUUID(characteristic.uuid))) } }
                        }

            }.observeOn(AndroidSchedulers.mainThread())
            .subscribe { notification -> onNotificationReceived(notification)
            }
 类似资料:
  • 我正在开发一个BLE应用程序,基于谷歌提供的Gatt示例项目:https://developer.android.com/samples/BluetoothLeGatt/index.html.所以,我可以成功地在特性中发送数据写入。现在我需要知道这个特性什么时候改变它的价值。我明白我需要实现set特征通知()方法和onExplptorWrite()方法。但我不能这样做这工作。搜索,我发现了一些想法

  • 我使用的是Android设备和Android5.1(蓝牙4.0)以及带有蓝牙4.2的MCU板。 在我的MCU方面,我正在循环更新我的Gatt特性,以确保我知道我在其中写入的数据是否一致。在我将其写入gatt数据库之前,我使用了crc检查。 在我的android方面,我只是有一个线程,它从gatt数据库中读取特性,然后我就有了相同的crc,但似乎50%的值是损坏的(这在我这边没有意义)。我知道我在关

  • 我看到了一个Firebase控制台的代码:如何为通知指定click_action,我使用了该通知,但在初始化变量CLS时出现了一个错误。我试图通过定义CLS=NULL来解析,以清除错误。它无法使用click_action打开我指定的活动 拜托,我有没有搞错什么?我怎么才能让它起作用?

  • 我正在开发一个与硬件设备连接的BLE(蓝牙LE)应用程序。我能够发现并连接到设备,从设备读取数据,将数据写入设备。 我在苹果的BLE文档中找不到的是,当你靠近一台设备时,当应用程序关闭时,如何获得通知。 我知道如何注册到特征通知,但此通知仅在应用程序位于后台时发生。 我知道可以在应用程序关闭时检测蓝牙,并发送通知,但我想在设备发现具有的特定BLE时收到通知。 iBeacon正在将BLE与UUID、

  • 有没有办法从"GCM通知"获取数据。这是我用gcm发送的json字符串的一部分:。我需要在我的应用程序中获取id的值,但我不知道如何...非常感谢。

  • 我有一个XML文件,我想取两个值。以下是XML: 我想让我们说一下<代码> 这是我尝试过的代码,但它不起作用: 有人能给我一个工作的例子吗?我是Java和XML的新手。