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();
}
}
});
}
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ć. –
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
Czy jesteś pewien, że to jest UUID FOBO? Czy możesz użyć innej aplikacji, aby skutecznie wykryć iBeacon? – davidgyoung