Как работает запатентованная технология Apple для фоновой рекламы службы GATT на iOS?
Согласно документации Apple, когда приложение iOS, использующее CoreBluetooth для реализации периферийного устройства BLE, находится в фоновом режиме, UUID службы больше не объявляются, а вместо этого помещаются в специальную «область переполнения»:
Любые UUID службы, содержащиеся в значении ключа CBAdverticingDataServiceUUIDsKey, которые не помещаются в выделенное пространство, попадают в специальную область «переполнения». Эти службы могут быть обнаружены только устройством iOS, явно сканирующим их. Пока ваше приложение работает в фоновом режиме, локальное имя не объявляется, и все UUID служб находятся в области переполнения. - developer.apple.com
Но что это за «область переполнения»? Как это работает?
Я установил сниффер Bluetooth и записал обмен данными BLE, но не нашел ни одного сообщение этого UUID Сервиса. Второму устройству iOS на переднем плане неоднократно удавалось успешно обнаруживать рекламу службы на фоновом устройстве iOS, но захват пакета ни разу не зарегистрировал UUID службы.
Так, как это работает?
Если я смогу понять, как это работает, я хотел бы попробовать запрограммировать устройство Android на использование того же процесса.