2014-04-15 12 views
5

Ich versuche Beacons mit dem estimo sdk in Android zu sehen, aber ohne Glück! Ich kann alle beecons sehen, aber mit allen anderen Beacons funktioniert nicht (fobo beacons etc.) Ich benutze die UUID für die Fobo-Beacons innerhalb des Region-Konstruktors, und ich kann im Logcat sehen, dass das Bluetooth die Geräte sehen kann, aber die Schätzwerte von sdk es nicht als Beacon sammeln. Irgendwelche Ideen, warum das passiert? Ich poste den folgenden Code:Android Estimote sdk ist nicht in der Lage, andere Beacons als die geschätzten zu scannen

private static final String FOBO_PROXIMITY_UUID = "00158800-587d-2206-d52b-fb6d6e2f0001"; 
private static final Region FOBOBEACONS = new Region("rid", FOBO_PROXIMITY_UUID , null, null); 
public void BeaconManager(){ 
    beaconManager = new com.estimote.sdk.BeaconManager(this); 
    beaconManager.setBackgroundScanPeriod(5000, 30000); 
    beaconManager.setForegroundScanPeriod(7000, 5000); 



    beaconManager.setRangingListener(new com.estimote.sdk.BeaconManager.RangingListener() { 

     @Override 
     public void onBeaconsDiscovered(final Region arg0, final List<Beacon> arg1) { 
      // TODO Auto-generated method stub 
      runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
        // Note that beacons reported here are already sorted by estimated 
        // distance between device and beacon. 
         int test=0; 
         if(arg1.size()<=0){ 
          Toast.makeText(MainActivity.this, "No beacon found", 
            Toast.LENGTH_SHORT).show(); 
         }else{ 

          for (int i = 0; i < arg1.size(); i++) { 
           String beac=arg1.get(i).getProximityUUID(); 
           Toast.makeText(MainActivity.this, "I found a beacon with UUID; "+beac, 
             Toast.LENGTH_SHORT).show(); 
         } 


         } 



        // adapter.replaceWith(beacons); 
        } 
       }); 
     } 

    }); 
    connectToService(); 

} 

    private void connectToService() { 
    beaconManager.connect(new com.estimote.sdk.BeaconManager.ServiceReadyCallback() { 
     @Override 
     public void onServiceReady() { 
     try { 
      com.estimote.sdk.utils.L.enableDebugLogging(true); 
      beaconManager.startRanging(FOBOBEACONS); 

     } catch (RemoteException e) { 
      Toast.makeText(MainActivity.this, "Cannot start ranging, something terrible happened", 
       Toast.LENGTH_LONG).show(); 
     } 
     } 
    }); 
    } 
+0

Ich würde nicht unbedingt erwarten, dass das funktioniert. Warum übergeben Sie die ESTIMOTE_PROXIMITY_UUID an den Regionenkonstruktor? Wenn Sie nach Beacons mit einer nicht geschätzten UUID suchen, würde ich erwarten, dass Sie eine Region für die UUID erstellen müssen, die Sie sehen möchten. –

+0

Entschuldigung, das war ein Fehler beim Schreiben des Codes, den ich korrigierte, aber das Problem ist nicht, dass ich in meinem Code den fobo uuid benutze und nicht funktioniert! Auch dieser Code funktioniert für die beacons von estimote, wenn ich die eue-Schätzung verwende oder wenn Ich benutze keine Uuid (dann gilt das für alle UUIDs)! – sfig

+0

Sind Sie sicher, dass das FOBO UUID ist? Können Sie eine andere App verwenden, um den iBeacon erfolgreich zu erkennen? – davidgyoung

Antwort

2

Das ist Wojtek Borowicz, ich bin ein Gemeinde-Evangelist bei Estimote. Tatsächlich unterstützt Estimote SDK keine Beacons von anderen Anbietern - deshalb können Sie sie nicht erkennen.

Prost.

+0

Danke Wojtek, Das war meine Gedanken wegen der Logcat Nachricht mit den Worten: "Gerät xx: xx: xx: xx: xx (MAC-Adresse) ist kein Schätzwert Beacon" Ich denke, ich werde Radio-Netzwerke-Bibliothek verwenden, weil ich weit ich weiß Android gibt es nur Estimote und Radio Networks Libraries Bin ich falsch? Kann jemand eine andere Bibliothek vorschlagen? – sfig

+0

Das ist super nervig, ich mag das Estimote SDK, aber nicht mit anderen iBeacons arbeiten ist ein massiver Deal Breaker. @ WojtekBorowicz Gibt es Pläne, dies zu ändern? – Ben

+0

@Ben Derzeit nicht. Wir führen Funktionen, die nur für Estimote verfügbar sind (z. B. Beschleunigungssensor und Temperatursensor), in unsere SDKs ein und möchten die bestmögliche Erfahrung bieten. Daher konzentrieren wir uns jetzt auf unsere eigene Software und Hardware. –

0

Vielleicht überprüfen Sie diesen Link .. nicht versucht es noch selbst aber planen, irgendwann.

https://github.com/AlvinBert

Ein Android-Quellcode IBeacon SDK. ohne Beschränkung auf Android. Es kann alle iBeacons erkennen.

+0

Interessanterweise ist die Codebasis die gleiche wie die geschätzte Android SDK. Ich musste die Bedingung manuell auskommentieren, um zu überprüfen, ob das abgefühlte Beacon ein Beacon ist oder nicht. Es beginnt dann zu arbeiten. –

+0

können wir die Suche nach bestimmten UUID einschränken? – Prasad