当在特定位置有许多信号时,Android如何对传入的蓝牙4.0消息进行优先排序?当一个区域(一群戴着Fitbit设备的人群等)有很多信标消息时,Android似乎会根据一定的标准处理一些传入的ble消息,而忽略其余的消息。这似乎比Android开发框架提供给我们的优先级更低。在拥挤的空间中用放大的信标信号进行各种测试,iPhones似乎不会以同样的方式行动。
发布于 2017-10-30 03:33:42
我怀疑行为上的差异是基于BLE芯片组的实现,而不一定是任何有意识的设计,更不用说BLE规范了。你可能会发现,即使在不同的iOS设备型号(具有不同的芯片组)之间,以及更分散的不同安卓型号之间,行为也会有所不同。
这个问题的任何实际有用的答案都可能是基于特定设备型号上的特定测试条件,而不是一个明确的通用答案。
诚然,这都是基于我所做的大量测试的猜测。只有在其他人没有更好和更具体的答案的情况下,我才会提供它。
发布于 2017-10-30 07:07:08
据我所知,没有“优先级排序”。蓝牙芯片在扫描主机的同时,只需将它们在空中拍摄的内容转发给主机。
你需要记住的是广告时间间隔。当然,比另一个设备更频繁地发送广告的设备更有可能被检测到。此外,如果两个设备在完全相同的时刻发出通告数据包,并且信号强度相等,我猜接收器将收到垃圾并丢弃数据包。
请注意,Android使用“主动扫描”,这意味着在应用程序收到通知之前,它会同时等待广告数据包和扫描响应数据包。为了获得扫描响应包,广告商必须在接收到广告包之后立即发送扫描请求,并且在这之后广告商立即发送扫描响应包。现在,标准定义了一个回退机制,如果这失败了,可能会在不同的控制器中实现不同的回退机制,因此不同控制器的最大差异可能是由于这一点。
https://stackoverflow.com/questions/47003946
复制相似问题