Get Distance from the Beacon List

I am using below code to find nearby beacons

beaconManager = new com.estimote.sdk.BeaconManager(Test.this);
beaconManager.setForegroundScanPeriod(2000,2000);
// Should be invoked in #onCreate.
beaconManager.setRangingListener(new com.estimote.sdk.BeaconManager.RangingListener() {
@Override
public void onBeaconsDiscovered(Region arg0, final List beacons) {
Log.d(“TAG”, "Ranged beacons: " + beacons);
Log.e(“TAG”, "Ranged beacons: " + beacons);
}
});

I Get perfect result. But i want the distance between beacons or from my location.
I search for the same and find below solution.

private static float calculateBeaconDistance(int rssi, int power)
{
return (float) Math.pow(10.0, (double)(power - rssi) / 20.0);
}

But this not much accurate.

Is ther any other way?? Please show the link or any code example.

Waiting for the responce.

Thanks

You can use the Utils#computeAccuracy method built into the Estimote Android SDK, it’s optimized for our beacons.

In any case though, the distance estimations are based on the signal strength, but signal strength can be affected by many things. For example, if somebody covers the beacon with their body, the received signal strength will drop down without the distance between the beacon and the smartphone changing. So the smartphone will “think” that the distance increased. All in all, treat the distance estimations with a pinch of salt.