iOS和Android Max BLE广告和扫描字节

时间:2016-04-20 20:37:08

标签: android ios bluetooth-lowenergy

我一直在搜索stackoverflow;但是,我似乎发现了与此有关的各种相互矛盾的答案。鉴于Android 5.1.1和iOS 8.4.1,可以通过无连接BLE服务相互发送的最大字节数是多少。我的基本理解是它应该是BLE Specficiation的20个字节(实际上是23个);但是,我已经看到iOS能够推动512的问题,而且android能够增加它的MTU。

此外,如果可以在连接中发送超过20个字节,那么当它接收数据包而没有直接连接时,它们都可以在iOS和Android上的扫描仪上正确识别并使用跨平台应用程序吗?

1 个答案:

答案 0 :(得分:2)

Per Apple' Best Practices for Setting Up Your Local Device as a Peripheral

  

虽然广告包一般可以容纳各种各样的广告   有关外围设备的信息,您可以只宣传您的   设备的本地名称和您想要的任何服务的UUID   广告。也就是说,当您创建广告词典时,就是您   可以只指定以下两个键:   CBAdvertisementDataLocalNameKey和   CBAdvertisementDataServiceUUIDsKey。如果您收到错误   指定任何其他键。

     

当您可以使用多少空间时,也存在限制   广告数据。当您的应用程序位于前台时,它最多可以使用   任何初始广告数据中的28个字节的空间   两个支持的广告数据键的组合。如果这个空间   用完了,扫描中还有10个字节的空间   只能用于本地名称的响应。任何服务UUID   不适合分配的空间被添加到特殊区域   “溢出”区;它们只能由iOS设备发现   明确地扫描它们。当你的应用程序在后台时,   本地名称未公布,所有服务UUID都放在   溢出区。

     

注意:这些大小不包含2个字节的标头信息   每种新数据类型都需要。确切的格式   广告和响应数据在蓝牙4.0中定义   规范,第3卷,C部分,第11节

如果您使用未注册的16字节服务UUID,我认为这将为您提供大约12个字节的数据。

通告数据包中的可用字节将与有效负载数据包中的可用字节不同。