Wie kann man die Android App dazu bringen, das Eddystone-Signal zu erkennen?


driftking9987

Ich beziehe mich für mein Projekt auf https://github.com/AltBeacon/android-beacon-library-reference .

Durch die Dokumentation und einige Kommentare habe ich herausgefunden, dass sie standardmäßig das altBeacon-Signal empfangen. Ich wollte wissen, wie wir es personalisieren können, um andere verschiedene Beacon-Formate wie Eddystone und iBeacon zu lesen.

Da es Open Source ist, möchte ich mich daran halten und später entsprechend personalisieren (aktualisieren).

Zum Beispiel müssen wir das Beacon-Layout mit dem folgenden Code einstellen:

beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25"));

Bearbeiten: Ich habe den setBeaconLayout-Teil des Codes geändert, wie in einer Antwort vorgeschlagen. Es funktioniert immer noch nicht.

Ich habe den folgenden Code verwendet (beziehe mich auf https://github.com/AltBeacon/android-beacon-library-reference ). Ich habe diesen setBeaconLayoutTeil hinzugefügt , um ein Eddystone-Signal zu empfangen, das leider nicht empfangen wird. Wenn ich das gleiche entferne, kann ich altBeacon-Signale empfangen.

 public void onCreate() {
    super.onCreate();
    BeaconManager beaconManager = org.altbeacon.beacon.BeaconManager.getInstanceForApplication(this);
    beaconManager.getBeaconParsers().clear();
    beaconManager.getBeaconParsers().add(new BeaconParser().
    setBeaconLayout(BeaconParser.EDDYSTONE_UID_LAYOUT)); //for Eddystone... 
    Log.d(TAG, "setting up background monitoring for beacons and power saving");
    Region region = new Region("backgroundRegion",null, null, null);
    regionBootstrap = new RegionBootstrap(this, region);
    backgroundPowerSaver = new BackgroundPowerSaver(this);
}

Kann mir jemand dabei helfen? Wie kann ich meine App dazu bringen, ein Eddystone-Signal zu empfangen?

Ps Kann jemand auch eine Liste von Beispielteilen setBeaconLayoutfür verschiedene Signale geben. Ich gehe davon aus, dass wir, wenn wir nur diesen Teil ändern, Signale empfangen können (für das Signalformat, für das wir das Layout festgelegt haben.

Vielen Dank im Voraus.

davidgyoung

In Version 2.6 der Android Beacon Library, die ab dem 15. November 2015 in der Referenzanwendung verwendet wurde, ist ein Fehler aufgetreten . Dieser Fehler verhinderte die Erkennung von Eddystone-Beacons mithilfe der Standardregionsspezifikation mit drei Null-IDs.

Dieser Fehler wurde wie in Version 2.6.1 der Bibliothek behoben . Ich habe die Referenzanwendung am 16. November 2015 auf Version 2.7 aktualisiert, die diese Fehlerbehebung enthält.

Die einfache Lösung besteht darin , die neueste Kopie der Referenzanwendung zu verwenden oder die Kopie zu ändern, von der aus Sie die Zeile ändern müssen:

compile 'org.altbeacon:android-beacon-library:2.6@aar'

zu

compile 'org.altbeacon:android-beacon-library:2.7@aar'

Verwandte Artikel


Wie kann man Gitterquadrate dazu bringen, die Farbe zu ändern?

shar27 Ich bin noch ein Anfänger und versuche zu verstehen, wie ich die Rasterfarben für mein Etch-a-Sketch-Projekt ändern kann. Eine Anleitung wäre wunderbar. Ich kann die Farbe des Hintergrunds der Seite ändern, ich kann auch die Farbe des Rasterrahmens ände

Wie kann man Android dazu bringen, die #-Taste zu wählen?

Lekan Meine Anwendung kann jede beliebige Nummer wählen, aber wenn ich die #-Taste zur anzurufenden Zeichenfolge hinzufüge, wird die Nummer kurz vor der # abgeschnitten. Zum Beispiel Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setData(Uri.pa