Background location tracker for Traccar servers with offline buffering and configurable intervals
Find a file
2026-04-30 18:02:29 +07:00
android feat: rename package to dev.fiatcode.tracpulse and app to TracPulse 2026-04-30 18:01:19 +07:00
docs docs: add package/app rename design for TracPulse 2026-04-30 17:41:06 +07:00
lib feat: rename package to dev.fiatcode.tracpulse and app to TracPulse 2026-04-30 18:01:19 +07:00
test feat: rename package to dev.fiatcode.tracpulse and app to TracPulse 2026-04-30 18:01:19 +07:00
.gitignore fix: address analysis issues - remove unused import, fix deprecated APIs, update test 2026-04-30 11:40:56 +07:00
.metadata fix: address analysis issues - remove unused import, fix deprecated APIs, update test 2026-04-30 11:40:56 +07:00
AGENTS.md docs: add AGENTS.md 2026-04-30 16:46:27 +07:00
analysis_options.yaml fix: address analysis issues - remove unused import, fix deprecated APIs, update test 2026-04-30 11:40:56 +07:00
pubspec.lock fix: address analysis issues - remove unused import, fix deprecated APIs, update test 2026-04-30 11:40:56 +07:00
pubspec.yaml chore: add pubspec description for TracPulse 2026-04-30 18:02:29 +07:00
README.md docs: rewrite README.md with project overview and structure 2026-04-30 16:48:43 +07:00

Traccar Client

Flutter Android app for background GPS location tracking, sending data to a Traccar server.

Build

flutter build apk --debug

The APK is output to build/app/outputs/flutter-apk/app-debug.apk.

Project Structure

lib/
  main.dart                 # App entry, dark theme, routing
  main_screen.dart          # Tracking toggle + live coordinates
  permission_screen.dart    # Pre-flight permission setup
  settings_screen.dart       # Server URL, device ID, accuracy config
  status_screen.dart        # Event log (LOCATION, SYNC, ERROR, etc.)
  preferences.dart          # SharedPreferences wrapper
  bridge/
    location_bridge.dart   # Dart↔Native MethodChannel (com.traccar.client/tracking)

android/app/src/main/kotlin/com/traccar/traccar_client/
  BridgeModule.kt           # Method channel handler
  service/LocationTrackingService.kt
  location/HeartbeatScheduler.kt  # AlarmManager heartbeat
  network/TraccarHttpClient.kt    # POST to server
  network/ConnectivityReceiver.kt

Configuration

On first launch, PermissionScreen guides through:

  1. LocationlocationWhenInUse then locationAlways (background)
  2. Notification — required for tracking alerts
  3. Battery — disable Doze optimization so tracking works reliably

Then set server URL and device ID in Settings before starting tracking.

Server Request Format

POST to https://yourserver/?id=DEVICE_ID&lat=...&lon=...&timestamp=...&is_moving=0

  • is_moving = speed > 1.0 m/s (3.6 km/h threshold)
  • Server URL and device ID come from Preferences (configured in Settings screen)