Близость CLBeacon всегда возвращает только .near и .far значение, но не .immediate - PullRequest
0 голосов
/ 23 января 2019

Я использую маяки estimote для приложения для iOS и внедрил CLLocationManager метод делегата didRangeBeacons для определения близости каждого маяка.

Исходя из близости .immediate, .near, .far , у меня написаны некоторые функции.

Раньше в iOS 11 это работало идеально. После обновления iOS 12 .immediate близость вообще не вызывается. Звонят только .near и .far .

Я много искал и не мог найти никакого решения для этого. В чем может быть причина не обнаруживать .immediate в одиночку, даже если я помещаю iPhone чуть выше маяка?

1 Ответ

0 голосов
/ 23 января 2019

Проверьте, что возвращает поле точности CLBeacon. Это приблизительное расстояние в метрах, полученное из RSSI и значения калибровки измеренной мощности, сконфигурированного в маяк. В принципе, вы получите .immediate близость, если точность составляет 0,5 метра или меньше. И вы получите точность не более 0,5, если RSSI (измеренный в дБм) значительно сильнее (менее отрицательный), чем измеренное значение калибровки мощности (также измеренное в дБм), установленное в маяк.

Возможно, ваше устройство сможет вернуть значение .immediate, настроив значение калибровки измеренной мощности, настроенное для маяка, на более отрицательное число.

Приведенное выше предложение, конечно, не поможет ему работать одинаково на iOS 11 и iOS 12, если вы действительно видите разницу между ними. Мне было бы интересно услышать, если вы можете воспроизвести эту разницу с помощью второго устройства.

...