Introduction & Initial Setup

General information about GPSLogger & this manual


Initially I started with this project in the year 2009, my first daughter had just been born, and I anticipated that quite soon I would have to answer questions like (when we are on a walk): What distance have we already walked? or How long is this going to take until we are back home?

Now she is driving her own car, and doesn’t care what her old father is yelling from the backyard…

Over this period of time I have added features & functionalities I personally found valuable for my outdoor sports activities (like hiking or cycling) - or my indoor training (pain cave) - others have been added on request of users.

One of my main use cases in the past few years, is to use my mobile device as a bike computer replacement since I do not see any value spending ~600,-€ (or more) for a decent device, when I already have powerful hardware with me. My phone has a large display, it has a decent CPU & memory, it can be online, I have a handle bar mount, and I am in the lucky position that I can write the code myself .

I don’t have a single clue how many bike computers I could have bought, if I had just worked in my regular job, instead of investing my time into the development of GPSLogger.


via Google Play


Download via F-Droid

You need to add a custom repository in order to be able to install GPSLogger II All details can be found in the short F-Droid Tutorial - Thanks Johann!

F-Droid appstore

via amazon appstore

Recommended for BlackBerry 10 Users (yes the app will still work on your BlackBerry 10 device)!

amazon appstore

Initial Setup

When you install the app and launch it for the first time you will be presented with a welcome dialog, containing some general information and the link to the Privacy Policy of the application. Please read it carefully, but since this legal stuff can be a bit difficult to read, you might find How GPSLogger II will process your data a bit easier to understand.

welcome The bottom line is - location information is sensitive data and you as the user having full control over what will be happening with this data. Of course, you are able to share recordings or live locations via the app, but all these additional features require your consent, and you need to actively configure/enable them. So you are in full control of what is happening - the app is a tool in your hands - use it wisely.

I do earn my money with something completely different - GPSLogger II is just a hobby, and I am happy to provide the app for free. Even this website does not use any tracking, or even cookies.

In the case of an update of GPSLogger (and there have been quite some updates in the past), the app will start with the latest change log information which always includes the option to read the Privacy Policy.

The ChangeLog (which is quite long now) can be also accessed at any time from the application settings via the App Changelog. (I guess I’ll have to add the log to this manual some day)

Once you’ve felt the warm welcome the next thing is that the app is going to ask you for the core permissions the app is going to need in order to work as designed.

permission-request The permission to read the device location is the only core permission the app actually needs - If you feel uncomfortable with allowing the app to access the device location, you don’t have to - but in such a case you shouldn’t be surprised that the app does not provide great value.

You can deny the request from the start up - but you should grant the app the permission to access the device location later via the application permission settings of your Android OS.

You’ll find all details about why certain permissions are requested in the Requested Permissions Section.

The last step of the initial setup is the Setup-Wizard selection dialog. You might not have realized it yet, but GPSLogger has many options and is highly configurable. The downside of this flexibility is, that it can be quite complicated for a new user to find the right place where certain features have to be enabled or configured.


In order to address this challenge the app currently has four different wizards guiding you though the setup process for certain functionalities. You have probably read/heard somewhere about the app, and you want to use it e.g. for your Shimano Di2 Shifting - or something completely different - or you want to use the app to scan BluetoothLE Beacons in your environment.

So you can select one of the four available wizards, or simply select No Thanks, not now… (you can start the wizards any time later from the    main menu).

BTLE Beacon Scanner…
The Beacon Scanner is constantly looking for BluetoothLowEnergy Beacons in your environment and is able to record the found beacons (you need to start the record process).

Treadmill Setup…
If you own a Treadmill supporting the Bluetooth FitnessMachineStandard you can simulate and record any outdoor run with GPSLogger.

rowing Rowing Machine Setup…
If your Rowing Machine supporting the Bluetooth FitnessMachineStandard you can simulate and record different (currently hard coded) outdoor rowing sessions.

Shimano Di2 Setup…
If you own a Wi-Fi module (EW-WU101 or EW-WU111) for your Di2, you can connect GPSLogger with your shifting system and remote control your device via the left & right shifting lever buttons.

info Staring GPSLogger for the first time - on Android 7 (or later)

The Android OS’ have different possibilities to extend the battery life of your device - one of these is to restrict the ability to allow apps to make use of the running-as-background-service capabilities. Such a restriction is counterproductive when using GPSLogger for recording.

disable-battery-optimization os-info-battery-optimization So the app is requesting you to disable the OS battery optimization for GPSLogger in multiple ways. For details see the FAQ: How to disable OS battery optimization.

Details about this core feature can be found in the Running as Android-Background Service Section.

Information about requested Application Permissions

To use the core functionality of GPSLogger (recording the GPS location of your device), only one single permission is required: ACCESS_FINE_LOCATION. All the other permissions listed below are only required if you make use of certain additional functionality & feature of the application. If you don’t want to use the feature you don’t have to grant the corresponding permission.


GPSLogger II only stores this location data locally (on your device) and uses this data exclusively for local display purposes. The data will not be processed in any further way or even processed by the backend systems (servers). The recorded data only leaves your device when you trigger an export. In any case, you remain in control of whom you hand over this exported data to.

If you want to share your location with third parties via the app, you have to set this up explicitly in the app settings.

One personal note concerning location permission requests when using only Bluetooth (Treadmill or Rowing Machine) - As soon as an app wants to establish a connection to another Bluetooth device the requesting app needs the permission to access the device location. This does not sound very logical, but it is what it is.


To ensure a smooth recording of your location history (and the subsequent display in the app), please allow GPSLogger II to track your location all the time (even when running in the background).

GPSLogger II will use location in the background to show you your activities (walks, runs or bike rides) on a map.

You can recognize via a fixed (permanent) notification that the ‘background location tracking service’ is in use. It is therefore always transparent for you when the application has access to your location and is recording data (if you have requested it to do so).

The recorded location data remain on your device and is not processed any further.


To be able to download any data (like online map information) the app needs to be able to access the internet - if you do not use any of the online features (the app is designed to work strictly OFFLINE), you do not have to grant these permissions. Accessing Wi-Fi & Network state is used in order to detect, if the app could establish an online connection and might use it as a fallback if the device is currently offline.


When recording data in the background the app might be configured to notify you in case of certain events - in order to catch your attention the app might wake up from locked state and/or vibrate.


When you want to be able to create a backup of your data & settings (that would remain on your device even when uninstalling the application), the app need the permission to WRITE and READ from the external storage.

This also applies when you want to export some data/recorded paths. Details about the export functionality and more details about external storages and the need for the READ/WRITE_EXTERNAL_STORAGE permission can be found in the Export & eMail Section.


Some GPSLogger features allow the sending of eMails to recipients you have specified in the application settings. The configuration of a secure SMTP connection can be quite complicated (depending on your eMail provider). In order to allow the app to make use of installed email accounts on your device (e.g. your Google-Account) both these permissions are required. They will be only used to simplify the email account SMTP Setup process.


The permissions FOREGROUND_SERVICE & REQUEST_IGNORE_BATTERY_OPTIMIZATIONS are used in order to allow the application background service to do its job without being paused/terminated by the Android OS. The RECEIVE_BOOT_COMPLETED is only required, when you want to enable the autostart options of the application.


When you want to connect any External Sensors or want to use the built in BluetoothLowEnergy Beacon Scanner the app requires the permission to access your Bluetooth hardware. The connect and/or admin right is used in order to restart bluetooth on your device (turn it off & on again).



When you have connected your Shimano Di2 with GPSLogger, then you can configure one of the D-Fly Channels to pick up your phone (when a call arrives). Obviously this specific permission is only related to this specific function and obviously only used when you want it to do so.

Registered Weblinks

need revision

Support for direct download of *.map files (zips) from


Why the app is free - what’s my motivation - There has to be a catch!

You are probably right - Google started a long time ago with the don’t be evil slogan… but that changed IMHO quite a while ago and hopefully in the meantime we have all become aware that we are paying for all the free Google services with our privacy.

I, as developer take your privacy extremely seriously, GPSLogger II is not collecting any data from you (not in the background nor in the foreground). Of course the app logs your location and saves this data on your device.

YOU ARE THE ONLY ONE who has the full control what will happen with this data. Of course when you make use of the export/share functionality this data will be exposed to a 3’rd party - but that’s always YOUR decision.

See also the formal Privacy Policy of GPSLogger II - Please note, that the only reason why Personal data is accessed by the app is in order to be able to send eMails (in your name) for supporting features like EmergencyAlerts, HappyPartner or (SimplifiedExportVia)Email.

My motivation

I started my career in the 90’ as a developer - over time I moved into a management role. Software-Development is really just a hobby for me, and it’s that back to your roots feeling that drives me. Also, I don’t want to lose the connection to the craftsmanship of software development & architecture. So I do earn my money with something different from trying to sell your data, and I do not rely on a large user base. For me, it’s enough when some people around the globe find GPSLogger useful. And as already stated - I am happy to give something back to the world (since life has been very generous to me).

Just a last remark on all this. I am probably my most loyal heavy user - if you are interested, I have briefly described my main use cases on the main app page of GPSLogger.

Version: 2023/03/19