摘自<BluetoothDesignGuidelines.pdf>文档
1. pairing:
苹果手机无法主动发起SMP配对流程,可通过以下两种方式发起配对流程:
(1)从端主动发起配对流程;
(2)从端在收到主端ATT指令后,返回SMP FAIL(错误码看SIG规范)给苹果手机,则苹果会重新发起配对流程。
2. Connection Parameters:
苹果的连接间隔默认为30ms,如果要更新,需要满足如下要求,且最小可以申请到20ms,如果蓝牙服务带HID服务,则可以申请的最小连接间隔为11.25ms,另外,苹果从来不会读取设备端偏爱的连接间隔的character值。
● Interval Max * (Slave Latency + 1) ≤ 2 seconds
● Interval Min ≥ 20 ms
● Interval Min + 20 ms ≤ Interval Max Slave Latency ≤ 4
● connSupervisionTimeout ≤ 6 seconds
● Interval Max * (Slave Latency + 1) * 3 < connSupervisionTimeout
3. services
GAP服务必须包含Device Name characteristic,并且是可写的;
当从端有能力改变自身服务时, GATT服务必须包含Service Changed characteristic,因为苹果可能会根据该特征值判断原来读取的从端设备的service list等信息是否还可以继续使用。
举例说明:假如从端的GATT没有Service Changed characteristic,且从端已经与一部苹果连接过,当从端的service list变化之后,再次与该苹果连接时,那么苹果默认认为从端没有能力改变自身的service等信息,那么苹果就会继续使用之前的信息,最终导致service list错乱。
4. 广播类型:
苹果手机不支持定向广播。
5. 广播数据:
广播数据必须包含:Flags、TX Power Level、Local Name、Services(广播primary services,第二服务不要广播);
待更新… …