我必须遵循以下场景: 我的应用程序请求并从BLE外围设备(血糖仪)接收数据。用户可能安装了另一个应用程序(来自其他开发人员),该应用程序也与外围设备通信。我注意到我的应用收到了针对其他应用启动的请求的特征通知。这导致我的应用程序两次接收一些数据。
有没有办法区分我的请求的响应和另一个应用程序引起的响应?或者我该如何处理?
答案 0 :(得分:1)
虽然堆栈显然知道某个(读取,写入)响应属于哪个应用程序(因为可能只有一个待处理请求,并且它知道是谁发送了请求),但是没有合理或合理的理由为什么它应该发送通知单个应用程序(已启用通知的人)。
请注意,GATT规范没有定义“每个链接多个gatt客户端”,只有一个客户端,因此外围设备甚至不知道可能有两个应用程序与之通信。因此,当它发送通知时,它不包含“目标应用”字段。
将多个应用程序多路复用到同一个GATT连接的功能是iOS和Android团队提出的。