Диапазон задержки iBeacon

Я играл с новыми iBeacons в iOS 7. У меня есть одно устройство, настроенное как маяк, а другое устройство определяет, когда я рядом, далеко, непосредственно и т. д. Я хотел бы очень быстро знать, когда я пересечь эти диапазоны. Есть ли способ настроить задержку? Я обнаружил, что мне нужно перемещать свое устройство очень медленно, иначе я не узнаю, когда переступлю эти пороги.


person toofah    schedule 26.09.2013    source источник
comment
Используя проект AirLocate, я вижу, что расстояние обновляется с задержкой, и я предполагаю, что это определяет имя диапазона. Таким образом, вы спрашиваете, может ли расчет расстояния (и действительно сигнал между двумя устройствами) быть быстрее?   -  person Khaled Barazi    schedule 03.10.2013


Ответы (1)


Нет, вы не сможете настроить задержку маяка. Как говорит Apple в Руководство по мониторингу регионов:

Чтобы предотвратить ложные уведомления, iOS не доставляет уведомления региона, пока не будут выполнены определенные пороговые условия. В частности, местоположение пользователя должно пересечь границу региона и отойти от этой границы на минимальное расстояние и оставаться на этом минимальном расстоянии не менее 20 секунд, прежде чем будут сообщены уведомления.

Apple не определяет, что такое задержка, кажется, что она недостаточно быстрая для вашего приложения.

У вас может быть компромисс — реализовать ранжирование маяка самостоятельно с помощью Core Bluetooth и прослушивать рекламные события CBPeripheral во время сканирования и ранжирования с помощью RSSI:

centralManager:didDiscoverPeripheral:advertisementData:RSSI:

Если вы используете собственный маяк, например образ виртуальной машины RadiusNetworks VirtualiBeacon, вы можете настроить частоту показа рекламы. С другой стороны, ваше приложение должно работать на переднем плане, в отличие от CoreLocation, доставляющего события маяка, даже когда ваше приложение не запущено.

person barbazoo    schedule 06.10.2013
comment
Казалось бы возможным использовать сигнализацию Beacon, чтобы заставить пользователя разбудить ваше приложение, а затем, когда передний край начнет использовать Core Bluetooth для получения более подробной информации, а затем выключите Core Bluetooth, когда вы снова перейдете в фоновый режим. - person David H; 13.12.2013