# OpenTracks logo OpenTracks: a sport tracker _OpenTracks_ is a sport tracking application that completely respects your privacy. [![Awesome Humane Tech](https://raw.githubusercontent.com/humanetech-community/awesome-humane-tech/main/humane-tech-badge.svg?sanitize=true)](https://github.com/humanetech-community/awesome-humane-tech)
Free (F-Droid) Free (Nightly for F-Droid) Donations Translations
Get it on F-Droid Nightly builds (for F-Droid client) Donate using Liberapay Translation status
OpenTracks version published on F-Droid bitcoin:bc1qckpls3lpjlcpyxzm66hcy65hnesas9zgacy6yc
Get it on Google Play
Get it on Amazon App Store
## Screenshots
## Features * __Tracking:__ track your sport and outdoor activities * __Voice announcements__ * __Photos and Markers:__ mark interesting locations while tracking * __Export:__ * export tracks either as KMZ (incl. photos), KML, or GPX * export automatically after each recording (e.g., to sync via [Nextcloud](https://nextcloud.com/)) * avoid duplication: each exported file contain a random unique identifier (i.e., `opentracks:trackid`) * __Altitude:__ * gain/loss via barometric sensor (if present) * shown in EGM2008 (above mean sea level); exported as WGS84 * __Bluetooth LE sensors:__ * heart rate * cycling: speed and distance * cycling: cadence * cycling: power meter * running: speed and cadence * support for BLE sensor training only (i.e., without GPS) for indoor training An overview of tested sensors: [README_TESTED_SENSORS.md](README_TESTED_SENSORS.md) ### Gadgetbridge integration OpenTracks can be used with [Gadgetbridge](https://www.gadgetbridge.org/): * shows statistics via notification on smart watches (requires Gadgetbridge 0.56.1 or later), and * Gadgetbridge's GPX exporter generates `opentracks:trackid` to avoid duplication (Gadgetbridge 0.53.0 or later). ### Privacy * __No Internet access:__ Internet is not used * __No advertising__ * __No in-app analytics__ * __No use of Google Play Services__ __Only required permission:__ * _ACCESS_FINE_LOCATION_: required to use the GPS. ### API OpenTracks includes an API for starting/stopping recording by another installed application (e.g., [Automate](https://llamalab.com/automate/), [Tasker](https://tasker.joaoapps.com), or [Easer](https://github.com/renyuneyun/Easer)). The API can be invoked by sending an explicit Intent to start an activity. `Package` (depends on the variant installed): * F-Droid: `de.dennisguse.opentracks` * GooglePlay: `de.dennisguse.opentracks.playStore` * Debug: `de.dennisguse.opentracks.debug` * Nightly: `de.dennisguse.opentracks.nightly` `Class`: * **Start a recording:** `de.dennisguse.opentracks.publicapi.StartRecording` * **Start a recording:** `de.dennisguse.opentracks.publicapi.StopRecording` For testing via adb: `adb shell am start -n "package/class"` The Start/Stop API is disabled by default to protect the user's privacy, but it can easily be enabled in the settings. ## Custom Dashboards (incl. map) As of v3.3.1, OpenTracks supports custom dashboards for displaying previously recorded and live tracks. The reference implementation is [OSMDashboard](https://github.com/OpenTracksApp/OSMDashboard), which presents an OpenStreetMap map (showing the current track, incl. updates). The Dashboard API is also used by [Gadgetbridge](https://codeberg.org/Freeyourgadget/Gadgetbridge/) for displaying live track statistics on supported wearables. Alternatively, recorded tracks can be shared as KMZ/GPX with installed applications (e.g., [OsmAnd](https://play.google.com/store/apps/details?id=net.osmand)). However, this is rather slow and does not provide updates while recording. The developer documentation is in [README_API.md](README_API.md). ## Project history _OpenTracks_ is based upon Google _My Tracks app_ ([code](https://code.google.com/archive/p/mytracks/)). Initially, _My Tracks_ was initially released by Google in 2010 as [open-source software](http://google-latlong.blogspot.fr/2010/05/code-for-my-tracks-is-now-yours.html). In 2016, [Google decided to discontinue](https://support.google.com/maps/answer/6333516) _My Tracks_ and stopped distributing it via the Google Play store in April 2016. Then [Plonk42](https://github.com/plonk42) conducted some maintenance work until 2016, so _My Tracks_ could still be used (based upon version _Google's MyTracks_ version 2.0.6). Plonk42's version is available [here](https://github.com/Plonk42/mytracks). In 2019, _OpenTracks_ was forked from Plonk42's _My Tracks_ and major rework was conducted. Rework of _OpenTracks_ included: * removing Google's analytics code, * removing integration into Google Drive, * removing Google Maps integration, * removing Google Earth integration, * removing use of Google Play service, * removing calorie estimation and activity estimation, * removing support for ANT+ and Classic Bluetooth, * adding support for Bluetooth LE heart rate sensors, * removing Protobuf (store sensor data in SQLite columns directly), and * removing Android Service API for other apps. Artwork, logos and user interface remained more or less unchanged. More information about _Google My Tracks_: * [Wikipedia page](https://en.wikipedia.org/wiki/MyTracks) * [Google code archive](https://code.google.com/archive/p/mytracks/)