CoreBluetooth advertising detection time

前端 未结 2 796
佛祖请我去吃肉
佛祖请我去吃肉 2021-02-03 14:22

This issue has been discussed back in October here. This is a new question as CoreBluetooth is fairly new and some changes might have occurred since then.

I have a BLE d

2条回答
  •  攒了一身酷
    2021-02-03 14:50

    The CoreBluetooth isn't listening continuously. It is sharing HW resources with bluetooth classic and Wifi.

    Basically you must be "Lucky" to receive the advertisement package. "Lucky" as in that the 2 sliding windows of the 2 unsynchronised systems must hit each other. If CoreBluetooth opens it's BLE window 10% of the time and you have set the advertisement interval without knowledge about the exact timing then it will/can take 10 times the advertisement interval.

    One recommendation is to advertise >fast< for the first 30 seconds (say 20ms and you should discover it in the first active CoreBluetooth window) and then slow down to intervals specified by Apple. 2,00 seconds is NOT a good number.

    See guideline here: https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf

    Page 18

    Advertising Interval The advertising interval of the Bluetooth accessory should be carefully considered, because it affects the time to discovery and connect performance. For a battery-powered accessory, its battery resources should also be considered. To be discovered by the Apple product, the Bluetooth accessory should first use the recommended advertising interval of 20 ms for at least 30 seconds. If it is not discovered within the initial 30 seconds, the accessory may choose to save battery power and increase its advertising interval. Apple recommends using one of the following longer intervals to increase chances of discovery by the Apple product:

    645 ms 768 ms 961 ms 1065 ms 1294 ms

    So try 1294 ms if you must save battery.

提交回复
热议问题