Search code examples
androidbluetooth-lowenergyibeaconibeacon-androidestimote

Certain Estimote Beacons did not get detected


Some of my Estimote Beacons are not getting detected in Android Phone with Android Software Version 4.3. Same Beacon gets detected with other Android devices ( ver 4.4.2, Ver 4.4.4 and 5 ) but not the one with Version 4.3. I am using the DemoApp without filters to test the same scenario in version 4.3. Some of the Beacons gets detected but not all.

I have also checked the AndroidManitest.xml in demoApp. It has android:minSdkVersion="18" android:targetSdkVersion="18".

which is Android version 4.3. // My mobile HUAWEI G6-U10 model has Android 4.3 and has BlueTooth LowEnergy. But some of the Beacons fails

Certain beacons are ignored in this list List beacons

  @Override
  public void onBeaconsDiscovered(Region region, final List<Beacon> beacons) {
    // Note that results are not delivered on UI thread.
    runOnUiThread(new Runnable() {
      @Override
      public void run() {
        // Note that beacons reported here are already sorted by estimated
        // distance between device and beacon.
        getActionBar().setSubtitle("Found beacons: " + beacons.size());
        adapter.replaceWith(beacons);
      }
    });
  }

Solution

  • Issue got resolved with new Estimote SDK version 0.5 released. If you have recently upgraded your Estimote Beacon firmware, issue happens.

    you have to copy the .aar file into libraries by following their instructions in GitHub.

    In your build.gradle file

                    repositories {
                    mavenLocal()
                    flatDir {
                    dirs '../libraries'
                    }
                    mavenCentral()
                    }
    
    
    
                    dependencies {
                    compile(name: 'estimote-sdk-preview', ext: 'aar')
                    }
    

    override Android-Manifest.xml to have min Android SDK lesser than 18.

                <manifest xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                package="<<your.package.here>>">
                <uses-sdk tools:overrideLibrary="com.estimote.sdk"/>
    

    Replace your previous logging util with following line

                EstimoteSDK.enableDebugLogging(true);
    

    P.S: Please voteup if you find this helpful