2015-05-23 4 views
0

У меня есть запрос относительно сканирования устройств BLE в приложении iOS.Выполнение сканирования BLE в фоновом режиме в iOS

Приложение для использования нашего приложения предназначено для совместного использования местоположения набора устройств BLE, назначенных каждому пользователю, на конкретный сервер на каждые 15 минут, независимо от состояния приложения (за исключением состояния завершения) ,

О нашем устройстве BLE он передает данные рекламы один раз на каждые 4 секунды.

Мы пробовали использовать фоновый режим «использует Bluetooth-аксессуар», и мы постоянно могли сканировать устройства BLE с помощью метода scanForPeripharal в CBCentralManager с UUID устройств BLE.

Мы смогли получить список отсканированных устройств даже в фоновом режиме. Но когда мы блокируем устройство, и экран становится неактивным/выключенным, мы не можем получить список отсканированных устройств.

В другом решении мы попытались использовать фоновый выбор, но он очень несовместим (практически он никогда не вызывается в заданный интервал времени).

Нам нужно решение, с помощью которого мы должны быть в состоянии сделать следующее: На каждые 15 минут. сканирование периферийных устройств BLE вокруг нашей окрестности. Получить текущее местоположение пользователя. Поделитесь им с сервером MQTT.

ответ

0

Несколько вариантов:

  1. Если у вас есть пользовательский BLE устройство в любом случае, вы можете изменить его, чтобы послать поток рекламы IBeacon периодически, скажем, взрыв 10 пакетов каждые 15 минут. Приложение, которое ищет iBeacon, используя CoreLocation, просыпается в фоновом режиме каждые 15 минут, и тогда вы можете читать другие рекламные объявления с помощью CoreBluetooth.

  2. Вы можете настроить режим поиска местоположения вашего приложения и запросить точное обновление местоположения. Это может позволить вам получить обнаружение устройств BLE после получения обратных вызовов для событий обновления местоположения. Недостатком является то, что вам нужно будет удовлетворить рецензентов AppStore, что ваше приложение является приложением для навигации для пользователей, чтобы получить его в AppStore.

+0

Привет, Дэвид, я считаю, что CoreLocation контролирует область маяков, упомянутых с использованием свойства ProximityUUID, как он получает ProximityUUID для этих устройств BLE. – Julian