iBeacons:cómo obtener potencia de baliza transmitida (txPower)
-
20-12-2019 - |
Pregunta
Los iBeacons parecen transmitir su parámetro txPower (informar potencia RSSI a 1 metro de distancia) que se utiliza para calcular beacon.accuracy
y beacon.proximity
propiedades (se pueden encontrar detalles sobre el paquete de anuncios de iBeacon) aquí).
Sin embargo, CLBeacon
La clase no parece tener una propiedad para txPower.¿Hay alguna manera de obtener txPower usando el marco Core Location, o necesito bajar a Core Bluetooth?La razón por la que necesito esto es que quiero experimentar con el cálculo personalizado de precisión/proximidad de la baliza para un descubrimiento muy rápido del alcance inmediato de la baliza.En estas circunstancias, invierta el cálculo de txPower a partir de accuracy
no es de ayuda.
Solución
Desafortunadamente no puedes obtener este valor mediante programación con ninguno de los dos CoreLocation
o CoreBluetooth
.Apple bloquea el acceso a todos los datos de iBeacon con CoreBluetooth
(Vea mi desglose de esto aquí.) Lo mismo ocurre con CoreLocation
simplemente no está expuesto en el CLBeacon
clase como has visto.
Como usted dice que no puede hacer un cálculo inverso, las únicas otras formas que se me ocurren para hacerlo son:
- Utilice un dispositivo Android, OSX Mavericks o Linux, que no ofrecen restricciones para leer este campo.
- Haga una tabla de búsqueda en su aplicación iOS de todos sus iBeacons (con valores UUID/mayores/menores únicos vs.su valor txPower)
La opción 2 anterior obviamente requiere que asigne identificadores únicos a todos sus iBeacons bajo prueba.