iBeacons - маяки:как получить мощность широковещательного маяка (txPower)
-
20-12-2019 - |
Вопрос
iBeacons, похоже, передают свой параметр txPower (сообщают о мощности RSSI на расстоянии 1 метра), который используется при расчете beacon.accuracy
и beacon.proximity
свойства (подробную информацию можно найти в пакете рекламных объявлений iBeacon здесь).
Однако, CLBeacon
класс, похоже, не имеет свойства для txPower.Есть ли способ, которым я могу получить txPower, используя Core Location framework, или мне нужно перейти к Core Bluetooth?Причина, по которой мне это нужно, заключается в том, что я хочу поэкспериментировать с пользовательским расчетом точности /близости маяка для очень быстрого определения дальности действия маяка.В этих обстоятельствах обратное вычисление txPower из accuracy
это не помощник.
Решение
К сожалению, вы не можете получить это значение программно ни с одним из них CoreLocation
или CoreBluetooth
.Apple блокирует доступ ко всем данным iBeacon с помощью CoreBluetooth
(Смотрите мою разбивку этого здесь.) Аналогично с CoreLocation
это просто не раскрывается в CLBeacon
класс, как вы уже видели.
Поскольку вы говорите, что не можете выполнить обратный расчет, то единственными другими способами, которые я могу придумать для этого, являются:
- Используйте устройство Android, OSX Mavericks или Linux, которые не имеют таких ограничений на чтение этого поля.
- Создайте таблицу поиска в вашем приложении iOS для всех ваших iBeacons (с уникальными значениями UUID/major/minor по сравнению сих значение txPower)
Вариант 2, приведенный выше, очевидно, требует, чтобы вы присвоили уникальные идентификаторы всем вашим тестируемым iBeacons.