Ich versuche, eine geschätzte Reichweite zu einem BLE-Gerät zu bekommen, angesichts der Geräte RSSI und kalibrierte Sendeleistung.Android BLE iBeacon Werbung Paket größer als erwartet
Das kalibrierte txPower wird angeblich als das letzte Byte in dem iBeacon-Werbepaket der Peripheriegeräte ausgegeben. Diese Pakete sollten gemäß der Dokumentation, die ich gefunden habe, 30 Bytes lang sein.
Die zurückgegebene byte[]
für das Paket ist jedoch 62 Byte lang. Aus diesem Grund ist das Format der Werbedaten unbekannt.
Warum könnte dies passieren, und gibt es eine Möglichkeit, das Format des 62-Byte-Pakets zu entschlüsseln?
Das ist seltsam. Gibt es einen einfacheren Weg, die kalibrierte txPower des Peripheriegeräts zu erhalten? Die kalibrierte Konstante ist wirklich alles, was ich von der Werbung brauche. – Orbit
Sie müssen die Konstante aus den Bytes der Werbung erhalten. Eine einfachere Lösung als das Parsing der PDUs besteht darin, nach dem Byte-Muster des statischen iBeacon-Präfixes zu suchen und dann die Kalibrierungskonstante basierend auf einem Offset von dort zu finden. Der Nachteil dieses Ansatzes besteht darin, dass die Bytefolge (zufällig) auch an anderer Stelle in der Werbung erscheinen kann, wodurch die Technik fehlschlägt. – davidgyoung