2025-12-27 08:38:01 +01:00
2025-11-17 14:35:53 +00:00
2025-11-17 14:35:53 +00:00
2025-08-24 20:48:53 +02:00
2025-11-08 20:33:45 +00:00

OpenTracks

Bluetooth sensors, recording, and activity export

A sensor-first fork of OpenTracks. Record sport activities with Bluetooth sensors taking priority over GPS, alongside customized recording controls and audio behavior.

Project Platform Main change License
Personal fork Android 8.0+ Bluetooth sensor priority Apache 2.0

Download fork APKs · Build locally · What changed · Upstream documentation

Fork identity — This repository is based on OpenTracksApp/OpenTracks. Upstream store downloads do not include these modifications.

Browse all sections

Fork purpose

Use hardware sensors as the primary source of cadence, speed, and distance, with corresponding changes to recording controls and audio behavior.

Changes from upstream

Area Changes maintained in this fork
Recording Bluetooth sensor data takes priority over GPS in the modified recording flow.
Interface Expanded sensor settings and customized recording layouts.
Audio Media controls in the statistics view; voice announcement and audio-focus changes.
App identity Fork-specific application IDs, including de.dennisguse.opentracks.fork and its variants.

Requirements

Use Requirements
Run the app Android 8.0 / API 26 or later, as configured in build.gradle.
Build the app Android SDK platform 37 and the Gradle wrapper. The daemon toolchain requests JetBrains JDK 21 in gradle/gradle-daemon-jvm.properties.

Getting started

Install a build

Download APKs from this fork's Gitea releases.

Build from source

From the repository root:

./gradlew assembleIrreproducibleDebug

Output: build/outputs/apk/. The debug build is intended for development.

Configuration

Configure Bluetooth sensors and recording options in the app settings. Verify the selected sensors before starting a recording.

The inherited public API examples use upstream package names. When targeting this fork, use the application ID of the installed variant from build.gradle; activity class names retain the de.dennisguse.opentracks namespace.

Usage

Start a recording after pairing the desired sensors. See the inherited feature and usage reference for tracking, export formats, dashboards, backup, and supported sensor types.

The screenshots are inherited documentation assets and may differ from the modified interface.

Development

Run the checks configured by Gitea Actions:

./gradlew lint
./gradlew testNightlyDebugUnitTest --stacktrace

CI configuration defines build and prerelease publication behavior. Check the workflow files for toolchain and runner requirements.

Upstream maintenance

The upstream sync workflow runs daily and on manual dispatch. It merges main from the configured Gitea upstream mirror into this fork's main. Resolve sync failures before retrying.

After an upstream merge, review sensor priority, recording layouts, announcements, and application IDs. Keep fork-specific instructions in this README. Refresh README.upstream.md separately from the merged upstream documentation, retaining upstream attribution and checking relative links.

Documentation

Reference What you will find
Inherited upstream README Original features, screenshots, export formats, and project history. Retained from this checkout; local fork notice removed and malformed links corrected.
Dashboard API Integration with external dashboards.
Tested sensors Documented sensor compatibility.
Upstream release instructions Inherited release process; review before applying it to this fork.
README style guide Shared documentation structure and presentation rules.

Credits

Development of the changes maintained in this fork was carried out to a significant extent with assistance from AI coding agents, in collaboration with the repository owner.

OpenTracks is developed by its upstream contributors and derives from Google My Tracks. See the project history and upstream contribution guidelines. Report fork-specific behavior in this fork's issue tracker.

License

See LICENSE for the inherited Apache License 2.0 terms and notices.

S
Description
No description provided
Readme Apache-2.0 104 MiB
Languages
Java 99.6%
Shell 0.3%