Lesen Werbung Paket in Android
Arbeite ich an einem von der BLE sensor, der Werbung der Hersteller-spezifischen Daten. Gibt es Beispielcode, der veranschaulicht, wie eine Ankündigung erhalten, Paket in Android und analysieren Ihre Nutzlast?
Vielen Dank für Eure Hilfe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, was ich gesucht habe:
Den BLE-scan-API-BluetoothAdapter.startLeScan(ScanCallback) benötigt eine call-back-Funktion für den scan-Ergebnissen. die Methode muss wie folgt Aussehen:
Und die scanRecord-variable ist eine byte-array enthält die Anzeige-paketnutzlast.
Pro die BLE-Spezifikation ist die Struktur der Nutzlast ist sehr einfach wie folgt:
Die Pakete können bis zu 47 bytes in der Länge und bestehen aus:
Für Werbung Kommunikations-Kanäle, die Zugriff auf Adresse ist immer 0x8E89BED6.
PDU wiederum hat seinen eigenen header (2 bytes: die Größe der Nutzlast und seiner Art–, ob das Gerät unterstützt verbindungen, etc.) und die eigentliche Nutzlast (bis zu 37 bytes).
Endlich, die ersten 6 bytes der payload sind die MAC-Adresse des Geräts und die aktuellen Informationen können bis zu 31 Byte.
das format der eigentlichen Informationen ist wie folgt:
erste byte ist die Länge der Daten und das zweite byte ist die Art, gefolgt von den Daten.
Dies ist ein cleverer Weg, um jede Anwendung zu überspringen gesamten Datensätze, wenn Sie kümmern sich nicht um den Inhalt.
Hier ist der Beispielcode, um zu bestimmen, den Inhalt der Werbung Paket:
Dank
wie-ibeacons-Arbeit
bluetooth org-Spezifikationen
Masse für die setzen mich auf die richtige Richtung!
ADPayloadParser in nv-bluetooth analysiert die Nutzlast eines Werbe-Paket und gibt eine Liste von AD-Strukturen. Die AD-Struktur-format wird beschrieben in "11 WERBE-UND SCAN-ANTWORT-DATEN-FORMAT" der "Bluetooth Core Specification 4.2".
Den folgenden code-snippet ist eine Implementierung Beispiel onLeScan Methode.
Registrieren Sie einen parser, Ihre Hersteller-spezifischen format in ADPayloadParser. Siehe die folgenden links für weitere Informationen.
Blog: http://darutk-oboegaki.blogspot.jp/2015/03/ibeacon-as-kind-of-ad-structures.html
GitHub: https://github.com/TakahikoKawasaki/nv-bluetooth
JavaDoc: http://takahikokawasaki.github.io/nv-bluetooth/
Maven: http://search.maven.org/#search/ga/1/a%3A%22nv-bluetooth%22
Bearbeiten 21.02.2016
Die Bibliothek, die ich unten verlinkt zu haben scheint verschoben worden;
sehen https://github.com/AltBeacon/android-beacon-library
Können Sie Android-iBeacon-Bibliothek für einen start.
Es ist eine Referenz-Anwendung, die Sie verwenden können, für die Grundlagen, und mit simulierten Daten.
~https://github.com/RadiusNetworks/ibeacon-reference-android~
Sobald Sie laufen können Sie wünschen, zu importieren die Bibliothek, und verwenden Sie es mit Ihren echten Gerät, gibt es auch einige Beispiel-code auf der Website:
http://developer.radiusnetworks.com/ibeacon/android/samples.html