BackPackTrack II


BackPackTrack II is an open source utility application meant to continuously record your location, without draining your battery and without requiring an internet connection.

The GPS will be switched on every 3 minutes for a maximum of 60 seconds (both configurable) to acquire a location, but only if you are moving. If there is not at least one satellite visible after 30 seconds (configurable), the GPS will be turned off. When the GPS cannot get a fix, a network location will be used as backup.

BackPackTrack II will also passively use locations requested by other applications, for example mapping applications. Passive locations will be recorded if the bearing changes by more than 30 degrees or if the altitude changes by more than 20 meter (both configurable).

Locations will be filtered based on distance from your last location and based on location accuracy. The default is to filter locations within 100 meter of the last location and locations with an accuracy of less than 100 meter.

The altitude of GPS locations will be corrected using the EGM96 model, which can make a significant difference in some areas.

From the status bar notification you can make an extra trackpoint or a new waypoint. Waypoints will be automatically reverse geocoded if there is an internet connection, otherwise this can be done later using the waypoint editor.

You can export your location history as a GPX or KML file for visualization in another application. You could use OsmAnd or Google Earth for this purpose.

You can upload your location history to a WordPress weblog using a small WordPress plugin. You could use the Google Maps GPX Viewer plugin for visualization.

If you want to see the status of the GPS, you could use the application GPS Status & Toolbox.

As a bonus BackPackTrack includes:

BackPackTrack II is a complete rewrite of BackPackTrack, the first Android application I wrote in 2011.

You can download the latest version of the application from the Play store.

Works on Android 4.1 (Jelly Bean) and later.

You can ask questions here.

If you like BackPackTrack II, you can let me know through a small PayPal donation.

Frequently asked questions

(1) Are Google Play services required?

No, but acquiring locations will not stop if you are still (not moving) anymore. Unfortunately there are no open source libraries available to detect user activity (what you are doing).

The version information shows if a usable version of Google Play services is installed.

(2) How can I stop this application?

BackPackTrack II is meant to continuously record your location, so there is no exit or quit option/menu. If you want to stop tracking, you can uncheck the check box labelled Tracking enabled found in the location tracking sub-menu.

(3) What is needed to make (reverse) geocoding work?

The Google Geocoder needs to be present on your device. See the version information to see if it is available.

(4) Why is the number of steps low?

Counting steps will start when the activity on foot has been recognized and will stop when any other activity has been recognized, which means that BackPackTrack II, unlike most similar applications, doesn't count false steps, for example when traveling in a vehicle.

Note that your device needs to have a hardware step counter for step counting to work. See the version information to check if this is the case.

(5) Why is the number of calories low?

Unlike most similar applications, BackPackTrack shows an estimate of the net number of calories burned. If you want to see a higher number of calories, walk more ;-)

(6) What is a waypoint/trackpoint?

Locations are recorded either as waypoint or trackpoint. The difference between a waypoint and a trackpoint is that a waypoint has a name and a trackpoint does not. Waypoints can be edited by the waypoint editor, but trackpoints cannot. It is the waypoints and trackpoints which are being exported to a GPX file. Most GPX visualization tools connect trackpoints by line segments, designating the path you have followed. Waypoints are mostly represented by symbols, like a little flag.

(7) What are GPX extensions?

GPX extensions are non standard data elements.

BackPackTrack II can write the following GPX extension elements:

(8) Can I automate things?

Yes, you can, for example with Tasker.

Enable/disable privacy mode:

Enable/disable tracking:

The default is to enable tracking.

Request trackpoint/waypoint:

Write/upload GPX/KML:

Make sure you have configured your weblog URL and authorization data before trying to upload.

Possible parameters:

For example:

am startservice -a eu.faircode.backpacktrack2.WRITE_GPX --es TrackName "Test" --ez WriteExtensions false --ez DeleteData false --es TimeFrom "1970-1-1" --es TimeTo "2016-1-1"

Get Google elevation data:

When no time from/to is specified, the default is yesterday.

Update weather information:

This will work even when weather updates are disabled.

Proximity alerts:

Tasker use case examples

Starting/stopping tracking based on a location:

Additionally an exit task can be created to stop tracking once you arrive back at the same location

Creating a launcher shortcut to write a GPX file:

Use your laucher's options for adding a Tasker widget to the homescreen

Capture a Trackpoint when a photo is taken:

(9) How can I calibrate my pressure sensor?

Adjust the calibration offset value until the menu Determine altitude for last location shows the correct altitude for your current location. You should hold your device at ground level and you must know the altitude for the current location. Note that the altitude reading from the GPS is not accurate enough for this purpose. Elevations fetched from the Google elevation API are suitable for this purpose.

The pressure sensor of the LG Nexus 5 is accurate enough to meassure one meter of difference, so ground level should be taken literally!

The pressure sensor of the LG Nexus 5 seems out of the box accurate enough for the purpose of BackPackTrack II.

(10) How often is the weather information updated?

The configured update interval determines the frequency weather information is fetched from OpenWeatherMap, but the update frequency of the weather reports depends on the used nearby weather station and on the OpenWeatherMap infrastructure. The weather history shows the time of the weather reports (not the time of fetching the weather reports).

(11) Is any sensitve data sent when fetching information?

When fetching:

Location = your last latitude and longitude

(12) How can I use weather info?

In order to use weather information you will need to register for a developer account here and to enter the API key into the weather settings. Without API key you will get 'Forbidden'.

Android permissions

Activity recognition (provided by Google Play services) does not require internet access.

The Android location manager needs internet access to acquire network locations (but not for GPS locations).

Battery usage

BackPackTrack will mainly consume power for two things:

The frequency and duration the GPS is being switched on can be configured.

The frequency the GPS will be switched on is equal to the tracking frequency, which is a matter of personal preference. Acquiring a location more often will result in more trackpoints at the expense of more power usage.

The duration the GPS will be switched on depends on the preferred accuracy, the location time-out and the satellite check time / count. The time to a location fix is different for different device types, so there may be some room to tune the location time-out and the satellite check time / count for your device. Leaving the GPS on, while there is no chance for a location fix, for example when you are indoors, is a waste of power.

The frequency at which your activity is being recognized can be configured as well. Devices with a significant motion sensor (see version information) will automatically reduce the frequency when still (not moving). Reducing the activity recognition interval for devices without a significant motion sensor will probably result in less power usage when still. Activity recognition does consume a lot less power than using the GPS, so power used for activity recognition is not wasted.


The following libraries are being used: