2014-04-15 10 views
5

Próbuję zobaczyć sygnały nawigacyjne z sdk estimot w systemie Android, ale bez powodzenia! Widzę wszystkie estymatory beacons, ale z wszystkich innych sygnałów nawigacyjnych nie działa (fobo beacons itp.) Używam uuid do beaconów fobo wewnątrz konstruktora Region i widzę w logcat, że bluetooth może zobaczyć urządzenia, ale estymator sdk nie zbiera go jako sygnału nawigacyjnego! Jakieś pomysły, dlaczego tak się dzieje? Zamieszczam poniższy kod:Android Estimote sdk nie jest w stanie skanować innych sygnałów nawigacyjnych niż estymowane

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

Nie oczekuję, że to zadziała. Ale dlaczego przekazujesz ESTIMOTE_PROXIMITY_UUID do konstruktora regionu? Jeśli chcesz wyszukać sygnały nawigacyjne z nieuznawanym przez użytkownika identyfikatorem UUID, spodziewałbym się, że musisz utworzyć region dla identyfikatora UUID, który chcesz wyświetlić. –

+0

Przepraszam, że to był błąd w pisaniu kodu, który poprawiłem, ale problem nie polega na tym, że w moim kodzie używam fobo uuid i nie działa! Również ten kod działa dla estymatorów beacon jeśli użyję estymucji uuid lub if Używam no uuid (wtedy to supo skanowanie dla wszystkich uuids)! – sfig

+0

Czy jesteś pewien, że to jest UUID FOBO? Czy możesz użyć innej aplikacji, aby skutecznie wykryć iBeacon? – davidgyoung

Odpowiedz

2

To jest Wojtek Borowicz, jestem ewangelistą w Estimote. W rzeczywistości pakiet SDK Estimote nie obsługuje sygnałów nawigacyjnych innych dostawców - dlatego nie można ich wykryć.

Pozdrawiam.

+0

Dzięki Wojtek, To było moje zdanie z logcat, mówiąc: "Urządzenie xx: xx: xx: xx: xx (ADRES MAC) nie jest estymatorem beacon" myślę, że będę korzystać z biblioteki Radio Networks beacuse i tak wiem dla android jest tylko Estimote i Radio Networks Libraries Czy się mylę? Czy ktoś może zaproponować inną bibliotekę? – sfig

+0

To jest bardzo denerwujące, podoba mi się zestaw SDK Estimote, ale nie działa z innymi iBeacons to potężny łamacz transakcji. @WojtekBorowicz czy są jakieś plany, aby to zmienić? – Ben

+0

@Ben Obecnie nie. Wprowadzamy funkcje, które są dostępne wyłącznie w Estimote (na przykład akcelerometrze i czujniku temperatury) do naszych pakietów SDK i chcemy zapewnić najlepszą możliwą jakość, dlatego skupiamy się na własnym oprogramowaniu i sprzęcie. –

0

Może sprawdź ten link .. nie próbowałem go jeszcze, ale planuję w pewnym momencie.

https://github.com/AlvinBert

z Androidem kod źródłowy iBeacon SDK. bez żadnego limitu na Androida. Może wykryć wszystkie iBeacony.

+0

Co ciekawe, jego codebase jest taki sam jak w sdk androida szacunku. Musiałem ręcznie skomentować warunek dla sprawdzenia, czy wyczuwany sygnał nawigacyjny jest estymowany, czy nie. Następnie zaczyna działać. –

+0

czy możemy ograniczyć wyszukiwanie konkretnego UUID? – Prasad

Powiązane problemy