8

Gestern bekam ich das Update für Android 5.0 auf meinem Nexus 4, und die Altbeacon-Bibliothek hörte auf, Beacons zu erkennen. Es scheint, dass didEnterRegion und didRangeBeaconsInRegion nicht einmal beim Monitoring bzw. Ranging aufgerufen werden.Altbeacon-Bibliothek funktioniert nicht auf Android 5.0

Auch die Locate-App von Radius Networks verhält sich jetzt anders, die Werte von Beacons werden, sobald sie erkannt werden, nicht mehr aktualisiert und oft scheint es, als ob die Beacons außerhalb der Reichweite waren.

Eine Sache, die ich anders bemerkte, ist, dass jetzt in der Logcat die folgende Zeile "BluetoothLeScanner: Callback Wrapper nicht finden konnte". Ich ging weiter und suchte nach dieser Klasse und sah, dass es mit Android L eingeführt wurde, aber ich weiß nicht, ob das etwas damit zu tun hat.

Es ist wichtig zu sagen, dass ich vor dem Update sowohl mit der Locate-App als auch mit der Referenzanwendung ohne Probleme gearbeitet habe.

Ich weiß nicht, ob das ein generalisiertes Problem ist oder nicht, aber wenn es mir passiert ist, bin ich sicher, dass es jemand anderem passieren könnte, also jede Hilfe würde es wirklich geschätzt werden.

Vielen Dank im Voraus!

UPDATE:

Nach dem Scheitern in der Bibliothek immer ich zur Arbeit beschlossen, die Android L Zweig der Bibliothek zu versuchen. Was ich getan habe, war, dass ich die neue Bibliothek in die Referenz-App einsteckte, aber auch nicht wie erwartet funktionierte.

Die Monitor-Aktivität scheint ordnungsgemäß zu funktionieren, indem sie benachrichtigt, wenn das Gerät in eine neue Region eingetreten ist. Die Ranging-Aktivität meldet jedoch keine Beacons. Obwohl didRangeBeaconsInRegion aufgerufen wird, melden Sie immer null Beacons. Seltsamerweise, wenn die Aktivität pausiert ist (kurzzeitig zu einer anderen App wechseln), zeigt das Logcat, dass nun didRangeBeaconsInRegion mit tatsächlichen Beacons aufgerufen wird.

Ich bin gerade irgendwie stecken geblieben, weil ich nicht weiß, wie man irgendwelche der Bibliotheken, die an Android L arbeiten, bekommt, also würde jede Hilfe wirklich geschätzt werden.

+0

Hey, hast du eine Lösung dafür bekommen. Ich verbesserte mein Nexus zu L und bekam ähnliches Problem – Amit

+1

Ich habe ein ähnliches Problem. Aber es funktionierte für mich auf einem Gerät mit Lollipop eines Tages, und am nächsten Tag passiert genau das. – hmartinezd

+0

hast du verschiedene Geräte ausprobiert? Ich habe gerade viel über BLE gelesen und gesehen, dass Leute, die das Nexus4 verwenden, mit dem BLE-Scannen keinen Erfolg haben. – SteelBytes

Antwort

1

Ich benutze die neueste Altbeacon Build auf 5.0+ und habe kein Problem damit. Tatsächlich habe ich es nie auf kitkat verwendet, also bin ich mir nicht wirklich sicher, ob ich helfen kann, aber hier ist mein Arbeitscode, der iBeacons zuhört.

beaconConsumer implementieren:

public class MainActivity implements BeaconConsumer 

init BeaconManager

 beaconManager = BeaconManager.getInstanceForApplication(this); 
     if (beaconManager != null && !beaconManager.isBound(this)) { 
     beaconManager.getBeaconParsers().add(new BeaconParser(). 
       setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24")); 
     beaconManager.bind(this); 
    } 

onConnect und starten listner

  @Override 
public void onBeaconServiceConnect() { 
    beaconManager.setRangeNotifier(new RangeNotifier() { 
     @Override 
     public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) { 
      if (beacons.size() > 0) { 
       Beacon firstBeacon = beacons.iterator().next(); 

      } 
     } 
    }); 
    beaconManager.startRangingBeaconsInRegion(new Region("com.example.app", null, null, null)); 
} 

dieser Code arbeitet an 3 Geräten

  1. Nexus 4 5.0.1
  2. Samsung Galaxy S4 - Vektor 5.0.1
  3. Samsung Galaxy S4 - CM12 5.1.1
0

Alte Frage, aber vielleicht werden einige Leute versuchen, eine Antwort für höhere Systeme zu finden, wo Sie um Erlaubnis fragen müssen. Sie müssen vor dem Scannen nach Manifest.permission.ACCESS_FINE_LOCATION fragen. Zumindest war das das Problem, dem ich begegnet bin. Meiner Meinung nach sollte lib solche Fälle zumindest abstürzen und auf das Problem hinweisen