5
votes

I am trying to see beacons with the estimote sdk in android but with no luck!I can see all the estimote beacons but with all other beacons is not working (fobo beacons etc.) I am using the uuid for the fobo beacons inside the Region constructor and i can see in the logcat that the bluetooth can see the devices but estimode sdk is not collecting it as a beacon!Any ideas why this is happening? I m posting the code below:

 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();
        }
      }
    });
  }
2
I wouldn't necessarily expect that to work. But why are you passing the ESTIMOTE_PROXIMITY_UUID to the region constructor? If you intent to look for beacons with a non-estimote UUID, I'd expect you would need to construct a region for the UUID you want to see.Chris Stratton
sorry this was a mistake in the writing the code i corrected but the problem is not that in my code i am using the fobo uuid and is not working!Also this code is working for the estimote beacons if i use the estimote uuid or if i use no uuid(then it supose that scan for all uuids)!sfig
Are you positive that is the FOBO UUID? Can you use another app to detect the iBeacon successfully?davidgyoung
yes with the locate ibeacon from radio networks i can see detect the beacon and as i can see in the logcat is saying that: "Device xx:xx:xx:xx:xx (MAC ADDRESS) is not an estimode beacon". So probably the estimode sdk is not suporting other beacons!sfig

2 Answers

2
votes

This is Wojtek Borowicz, I'm a community evangelist at Estimote. Actually, Estimote SDK does not support Beacons from other vendors - that's why you cannot detect them.

Cheers.

0
votes

Maybe check this link.. not tried it yet myself but plan to at some point.

https://github.com/AlvinBert

An Android source code of iBeacon SDK. without any limit on Android. It can detect all iBeacons.