ibalises :comment obtenir la puissance d'une balise diffusée (txPower)
-
20-12-2019 - |
Question
Les iBeacons semblent diffuser leur paramètre txPower (rapporte la puissance RSSI à 1 mètre de distance) qui est utilisé dans le calcul beacon.accuracy
et beacon.proximity
propriétés (les détails sur le paquet de publicités iBeacon peuvent être trouvés ici).
Cependant, CLBeacon
la classe ne semble pas avoir de propriété pour txPower.Existe-t-il un moyen d'obtenir txPower en utilisant le framework Core Location, ou dois-je passer à Core Bluetooth ?La raison pour laquelle j'en ai besoin, c'est que je souhaite expérimenter un calcul personnalisé de précision/proximité de la balise pour une découverte très rapide de la portée immédiate de la balise.Dans ces circonstances, inversez le calcul de txPower à partir de accuracy
n'est pas une aide.
La solution
Malheureusement, vous ne pouvez pas obtenir cette valeur par programme avec l'un ou l'autre CoreLocation
ou CoreBluetooth
.Apple bloque l'accès à toutes les données iBeacon avec CoreBluetooth
(Voir ma répartition de ceci ici.) De même avec CoreLocation
il n'est tout simplement pas exposé dans le CLBeacon
classe comme vous l'avez vu.
Puisque vous dites que vous ne pouvez pas faire de calcul inverse, les seules autres façons auxquelles je peux penser pour le faire sont :
- Utilisez un appareil Android, OSX Mavericks ou Linux, qui n'offrent aucune restriction de ce type sur la lecture de ce champ.
- Créez une table de recherche dans votre application iOS de toutes vos iBeacons (avec des valeurs UUID/majeures/mineures uniques par rapport à.leur valeur txPower)
L'option 2 ci-dessus nécessite évidemment que vous attribuiez des identifiants uniques à toutes vos iBeacons testées.