Android - Fused location with balanced profile

202 Views Asked by At

in my application i need to track the position of my device. The localization must run in a long life background service (it extends android.app.Service). I need a good tradeoff between accurancy (in meters) and battery usage. The accurancy of my application is around 40-50 meters. I found a documentation that with the new fused location the location system (GPS, wifi tracking and so on) improve accurancy and battery drain.

http://www.intelligrape.com/blog/2014/07/17/googles-fused-location-api-for-android/

In particular i focused on the balanced profile (accurancy around 40 m based on wifi and cellular cells). The documentation shows that the % usage of the battery should be 0.6% per hour. My test cases show a usage around 4% per hour.

Here an example of my code:

_locationRequest = LocationRequest.create();
_locationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
_locationRequest.setInterval(60 * 1000);
LocationServices.FusedLocationApi.requestLocationUpdates(_googleApiClient, _locationRequest, this);

and the AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

Since the documentation shows an usage (BALANCED_POWER 20 seconds 0.6% ~40 meters) and since my application uses BALANCED_POWER 60 seconds, why my application (based on my test) seems to drain so much? What i'm wrong?

Thanks in advance

0

There are 0 best solutions below