iBeacons:So erhalten Sie Broadcast-Beacon-Strom (txPower)
-
20-12-2019 - |
Frage
iBeacons scheinen ihren txPower-Parameter zu senden (RSSI-Leistung in 1 Meter Entfernung melden), der bei der Berechnung verwendet wird beacon.accuracy
Und beacon.proximity
Eigenschaften (Details zum iBeacon-Werbepaket finden Sie hier Hier).
Jedoch, CLBeacon
Die Klasse scheint keine Eigenschaft für txPower zu haben.Gibt es eine Möglichkeit, txPower mithilfe des Core Location-Frameworks zu erhalten, oder muss ich auf Core Bluetooth umsteigen?Der Grund, warum ich das benötige, ist, dass ich mit der benutzerdefinierten Genauigkeits-/Näherungsberechnung von Beacons experimentieren möchte, um eine sehr schnelle Erkennung der unmittelbaren Reichweite von Beacons zu erreichen.Unter diesen Umständen wird die Berechnung von txPower umgekehrt accuracy
ist kein Helfer.
Lösung
Leider können Sie diesen Wert auch nicht programmgesteuert abrufen CoreLocation
oder CoreBluetooth
.Apple blockiert den Zugriff auf alle iBeacon-Daten mit CoreBluetooth
(Siehe meine Aufschlüsselung davon Hier.) Ebenso mit CoreLocation
es wird einfach nicht in der angezeigt CLBeacon
Klasse, wie Sie gesehen haben.
Da Sie sagen, dass Sie keine umgekehrte Berechnung durchführen können, fallen mir nur andere Möglichkeiten ein, dies zu tun:
- Verwenden Sie ein Android-, OSX Mavericks- oder Linux-Gerät, das keine derartigen Einschränkungen beim Lesen dieses Feldes bietet.
- Erstellen Sie in Ihrer iOS-App eine Nachschlagetabelle aller Ihrer iBeacons (mit eindeutigen UUID-/Haupt-/Nebenwerten vs.ihr txPower-Wert)
Option 2 oben erfordert natürlich, dass Sie allen zu testenden iBeacons eindeutige Kennungen zuweisen.