Может ли приложение iOS выступать в качестве маяка, даже если оно работает в фоновом режиме? - PullRequest
0 голосов
/ 31 марта 2020

Мне нужно, чтобы мое приложение работало как маяк BLE, даже если оно находится в фоновом режиме. Я уже сделал часть маяка - работает нормально, когда я использую приложение.

Проблема в том, что я никогда не заставлял ничего работать в фоновом режиме раньше, и не уверен, каковы ограничения - если я будет разрешено, чтобы приложение работало в фоновом режиме.

Интересно, возможно ли это (или технически, и согласно правилам App Store)

  1. Это технически возможно? Может ли мое приложение выступать в качестве маяка, даже если оно не на переднем плане.
  2. Это в правилах App Store?

1 Ответ

1 голос
/ 31 марта 2020

К сожалению, iOS приложения не могут показывать рекламу iBeacon, если они не находятся на переднем плане. Если вы запрограммировали свое приложение для рекламы фреймов iBeacon, как только экран выключится или приложение не будет видно, iOS изменит формат рекламы на специальный общий фоновый c рекламный ролик, который не соответствует формату iBeacon.

Эта фирменная фоновая реклама бесполезна для идентификации устройства. Он предназначен для подключения к сервисам BLE GATT с других iOS устройств. Если вы не хотите рекламировать подключаемую услугу BLE GATT для других iOS устройств, эта реклама не имеет большого значения.

Документация Apple описывает это ограничение здесь в разделе, озаглавленном «Фон Bluetooth-периферийных устройств». Режим выполнения ":

Вы должны знать, что реклама, когда ваше приложение находится в фоновом режиме, работает иначе, чем когда ваше приложение находится на переднем плане. В частности, когда приложение работает в фоновом режиме:

Рекламный ключ CBAdtactDataLocalNameKey игнорируется, а локальное имя периферийного устройства не объявляется. Все UUID службы, содержащиеся в значении рекламного ключа CBAdvertisingDataServiceUUIDsKey, помещаются в специальную область «переполнения»; они могут быть обнаружены только устройством iOS, которое явно сканирует их. Если все приложения, которые размещают рекламу, находятся в фоновом режиме, частота, с которой ваше периферийное устройство отправляет рекламные пакеты, может уменьшиться.

Может быть не очевидно, что вышеприведенное приводит к прерыванию передачи iBeacon, но я вас уверяю, это абсолютно следствие.

...