Location tracking modes: Frequent updates or battery efficiency?
Roam.ai has developed three adaptive location tracking modes with varying frequencies of updates and levels of battery drain to suit your specific use case.

Roam.ai brings even more flexibility and battery saving to your location based app
Every app user has experienced the frustration of high battery drain while using apps with location components. Once a user checks their settings and discovers your app is the culprit, two things are likely to happen: location permissions will be turned off or the app will be deleted altogether.
As a developer, you want to be able to integrate location components into your app to personalize the experience and gain valuable insights that can help improve your product without losing your user’s trust in the process. Traditionally, increasing battery efficiency of location-based apps meant fewer location updates and, importantly, less accurate location data.
Roam.ai brings you a flexible solution that never compromises the accuracy of location updates. Using three adaptive tracking modes as well as time or distance internal tracking, choose the right balance between battery consumption and frequency of location updates to suit your specific use case.
Adaptive location tracking modes
We have developed three adaptive tracking modes with varying frequencies of updates and levels of battery drain:
Method Name | Distance Frequency | Battery Drain |
---|---|---|
Active Tracking | High Frequency; 25m~250m | High Battery Drain; 6%~12% |
Balanced Tracking | Medium Frequency; 50m~500m | Medium Battery Drain; 3%~9% |
Passive Tracking | Low Frequency; 100m~1000m | Near 0% Battery Drain; 0%~1% |

Roam.ai utilises a dynamic approach based on the frequency of updates and the speed a user is traveling. The faster a user is moving, the fewer location updates are required to track the path of the user and fewer updates are sent to the server, saving significant battery.
Distance interval tracking
If your app requires more conventional or consistent methods of location tracking, you can choose to get location updates at specific preset distance intervals.
Type | Unit | Unit Range |
---|---|---|
Distance Interval | Meters | 1m ~ 2500m |
Time internal tracking
If you need to track your users at specific times, you can choose to implement tracking at your chosen time interval. The further apart the intervals, the lower the battery drain.
Type | Unit | Unit Range |
---|---|---|
Time Interval | Seconds | 10s ~ 10800s |
Note: Time Interval is now only available on Android. iOS will launch soon.
Which location tracking mode is right for my app?
The tracking mode we recommend you use will depend on your specific use case.
The Active
mode is perfect for use cases that require real-time accurate tracking as ride-hailing services and fitness apps. With high-frequency of updates and 10-meter precision accuracy, ensure your users are always informed about the exact location of their driver.
The Balanced
mode is suitable for use cases that require less frequent location updates such as on-demand services. This mode efficiently and accurately connects suppliers with consumers for food delivery, grocery delivery services and logistics.
The Passive
mode is suitable for use cases that do not require real-time location tracking such as consumer and social apps. For example, use cases where you need to send relevant location-based push notifications such as retailers and restaurants.
You can also use time or distance interval tracking to create a solution that fits your specific use case. If you choose more frequent location updates, your users' battery will drain faster.
Example location tracking mode
Below you’ll find an example of a custom tracking mode if your use case needs fitness level location tracking. In this use case, the user will be able to accurately track their running, cycling or walking path accurately with frequent location updates, even when the app is running in the background.
//Update location based on distance between locations.
GeoSparkTrackingMode trackingMode = new GeoSparkTrackingMode.Builder("DISTANCE IN METERS", "STATIONARY DURATION IN SECONDS")
.setDesiredAccuracy(GeoSparkTrackingMode.DesiredAccuracy.HIGH)
.build();
//Update location based on time interval.
GeoSparkTrackingMode trackingMode = new GeoSparkTrackingMode.Builder("TIME INTERVAL IN SECONDS")
.setDesiredAccuracy(GeoSparkTrackingMode.DesiredAccuracy.HIGH)
.build();
Read our iOS and Android documentation to configure tracking modes into your app. Or contact us here and we’ll be happy to help you find the best solution for your needs.
Get started with Roam.ai for free
If you’re interested in creating battery-efficient location apps with uncompromised accuracy, get in contact with a member of our team or get started for free.