1

我必须遵循以下场景:我的应用程序从 BLE 外围设备(血糖仪)请求并接收数据。用户可能安装了另一个应用程序(来自另一个开发人员),该应用程序也与外围设备通信。我注意到我的应用程序接收到由其他应用程序发起的请求的特征通知。这会导致我的应用两次接收一些数据。

有什么方法可以区分对我的请求的响应和由另一个应用程序引起的响应?或者我该如何处理?

4

1 回答 1

2

虽然堆栈显然知道某个(读、写)响应属于哪个应用程序(因为可能只有一个待处理的请求,并且它知道谁发送了请求),但它没有逻辑或合理的理由向其发送通知单个应用程序(在启用通知的应用程序中)。

请注意,GATT 规范没有定义“每个链接多个 gatt 客户端”,只有一个客户端,因此外围设备甚至不知道可能有两个应用程序在与其通信。因此,当它发送通知时,它不包含“目标应用程序”字段。

将多个应用程序多路复用到同一个 GATT 连接的功能是 iOS 和 Android 团队等提出的。

于 2018-01-24T21:51:47.743 回答