2016-05-17 8 views
0

Ich möchte iBeacon Datenpaket von Android-Handy übertragen, mit Datenflagge.Kann ein Android-Gerät als iBeacon fungieren, mit Flag?

(0x01) ist Bluetooth GAP-Spezifikation, die Beacon-Fähigkeit darstellt.

Meine Situation:

Derzeit versuche ich mit BluetoothLeAdvertiser zu werben. Aber es funktioniert nicht wie ich dachte. Ich habe festgestellt, dass ich nur "Herstellerspezifische Daten" bewerben kann.

BluetoothManager manager = (BluetoothManager) getSystemService(BLUETOOTH_SERVICE); 
mBluetoothAdapter = manager.getAdapter(); 
mBluetoothLeAdvertiser = mBluetoothAdapter.getBluetoothLeAdvertiser(); 

// Settings here 

mBluetoothLeAdvertiser.startAdvertising(settings, getAdvertiseData(), mAdvertiseCallback); 


Mein aktuelles Ergebnis:

enter image description here


Was ich will:

Gemeinsame IBeacon Datenpaket (Bild unten) Daten-Flag hat, Geben Sie 0x01 ein. Und ich möchte dieses Flag zu meinem iBeacon Werbepaket hinzufügen.
Das bedeutet, ich will Rohdaten "0x020106" hinzufügen, um einen Teil des Pakets zu führen.
Wie kann ich das archivieren?

enter image description here


Etc:

Ich habe bereits unter etwa Frage zu lesen, aber es für mein Problem nicht hilft.
Can an Android device act as an iBeacon?


Außerdem habe ich schon gelesen, dass Android-ble api nicht Daten-Flag nicht unterstützt.
Aber der Kommentar war im Jahr 2015, gibt es jetzt hoffnungsvolle Änderungen?

https://github.com/AltBeacon/android-beacon-library/issues/141

Leider ist dies derzeit nicht von dem Android BLE APIs erlaubt, so dass die Bibliothek kann das nicht.


Jede Hilfe wird geschätzt. Vielen Dank.

+0

iBeacon ist Teil von Apples eigener BLE. Es gab einen Rechtsstreit über die AltBeacon-Support-Bibliothek und Apple vor nicht allzu langer Zeit, wenn Speicher richtig funktioniert. – t0mm13b

+0

Danke für deinen Kommentar, t0mm13b. Ich verstehe. Mein Punkt ist, kann ich "Datenflag (0x01)" mit "Herstellerspezifische Daten (0xFF)" in meinem "Beacon-Paket" hinzufügen? –

+0

Haben Sie es tatsächlich zuerst versucht? – t0mm13b

Antwort

1

Leider bieten Android Java BLE APIs keine Möglichkeit, dies zu tun. Ich recherchierte dieses Thema, um die Android Beacon Library Issue zu beantworten, auf die Sie verwiesen. Mit den Java-APIs können Sie nur Servicedaten oder Herstellerdaten anzeigen. Sie sind einfach nicht flexibel genug, um andere Werbe-PDUs angeben zu können. Dies hat sich seit Mai 2016 nicht geändert.

Sie können möglicherweise tun, was Sie wollen, indem Sie auf eine niedrigere Ebene herunterfallen und mit C BlueDroid APIs sprechen. Dies erfordert jedoch ein gerootetes Gerät und möglicherweise die Installation eines benutzerdefinierten Android-Betriebssystemabbilds, um Ihnen Zugriff zu gewähren.

Verwandte Themen