如何在Android中以广播方式收听BLE通知(使用RxJava2和RxAndroidBLE库)

时间:2018-08-05 11:51:49

标签: android bluetooth-lowenergy rx-java2 rxandroidble

上下文: 我有一个基于BLE的Android应用程序(基于MVP),该应用程序与外部BLE设备通信(也使用RxAndroidBLE库)。 Android App会写入featureUUID并从同一UUID读取通知。我已经实现了可链接的RxObservables,这些RxObservables可以使用BLE设备进行读写,而我的Android应用程序运行良好。

关注点: 我有一个新的要求,即设备上的关键硬件中断会生成BLE通知,Android应用程序在生命周期中Android应用程序必须始终监听该BLE通知并更新UI活动。 侦听通知并过滤特定硬件中断的通知内容是每次设备发送硬件中断时都需要完成的任务。

Internet上有多种建议,但我不知道哪种是适合此要求的解决方案。

以下是我遇到的建议:

(1)为通知UUID值创建自定义意图      创建可以与此Intent一起使用的广播接收器      在所有Activity类或BaseAppActivity上注册此广播接收器。      收到中断后,请更新用户界面

(2)创建一个从IntentService扩展的服务     在Intent中定义此服务中的BroadcastReceiver(读取BLE通知UUID)     在此Service类中定义注册/注销方法     在每个MVP的Presenter中,调用service.registerBroadcastReceiver     收到Intent后,演示者将收到更新,然后可以更新UI。

当前未知: 我是RxJava的新手,并且仅在过去两个月(RxJava2)中使用过RxJava。我部分理解了可以在Android应用程序/活动的整个生命周期中处于活动状态的无限RxObservables的概念,并且我认为这可能是为我的用例实现上述任何解决方案的基础。

赞赏这方面的任何帮助,指导或建议。

0 个答案:

没有答案