2014-04-15 10 views
5

Sto cercando di vedere i beacon con lo stimost sdk in Android ma senza fortuna! Posso vedere tutti gli stimote beacons ma con tutti gli altri beacon non funziona (fobo beacons ecc.) Sto usando l'uuid per i fobo beacons all'interno del costruttore di Region e posso vedere nel logcat che il bluetooth può vedere i dispositivi ma stimode sdk non lo sta raccogliendo come un beacon! Qualche idea del perché questo sta accadendo? I m postando il codice qui sotto:Android Estimote sdk non è in grado di scansionare altri beacon rispetto a quelli stimare

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

Non mi aspetterei necessariamente che funzioni. Ma perché stai passando ESTIMOTE_PROXIMITY_UUID al costruttore della regione? Se sei intenzionato a cercare i beacon con un UUID non stimolante, mi aspetto che tu debba costruire una regione per l'UUID che vuoi vedere. –

+0

scusa è stato un errore nella scrittura del codice corretto ma il problema non è che nel mio codice sto usando uuid fobo e non funziona! Anche questo codice sta funzionando per stimare i beacon se uso lo stimote uuid o se Io non uso uuid (quindi supponiamo che effettui la scansione di tutti gli uuids)! – sfig

+0

Sei positivo che sia l'UUID FOBO? Puoi usare un'altra app per rilevare correttamente l'iBeacon? – davidgyoung

risposta

2

Si tratta di Wojtek Borowicz, io sono un evangelista comunità Estimote. In realtà, Estimote SDK non supporta i beacon di altri fornitori: ecco perché non è possibile rilevarli.

Cheers.

+0

Grazie Wojtek, questo era il mio pensiero per il messaggio logcat che diceva: "Il dispositivo xx: xx: xx: xx: xx (MAC ADDRESS) non è un beacon estimode" penso che userò la radio Networks library perché mi conosco molto bene per Android c'è solo Estimote e radio Networks Libraries Mi sbaglio? Qualcuno può suggerire un'altra libreria? – sfig

+0

Questo è super fastidioso, mi piace l'Estimote SDK ma non funziona con altri iBeacons è un enorme affare. @ WojtekBorowicz ci sono piani per cambiare questo? – Ben

+0

@Ben Attualmente non. Stiamo introducendo funzionalità esclusive di Estimote (ad esempio accelerometro e sensore di temperatura) ai nostri SDK e vogliamo offrire la migliore esperienza possibile, quindi al momento ci stiamo concentrando sul nostro software e hardware. –

0

Forse controllare questo collegamento .. non l'ho provato ancora ma ho programmato di farlo ad un certo punto.

https://github.com/AlvinBert

un Android il codice sorgente di IBeacon SDK. senza alcun limite su Android. Può rilevare tutti iBeacons.

+0

È interessante notare che il suo codebase è lo stesso del stimote android sdk. Ho dovuto commentare manualmente la condizione per verificare se il beacon rilevato è stimote o meno. Quindi inizia a funzionare. –

+0

possiamo limitare la ricerca di un UUID particolare? – Prasad

Problemi correlati