GPS Car Tracking
GPS tracks with live OBD-II metrics; offline queue to your own server
Luis Felipe Domínguez Vega Connectivity Navigation
Description
GPS Car Tracking records GPS tracks enriched with live OBD-II metrics from an ELM327 adapter (Bluetooth LE GATT or Classic SPP), queues samples on the device, and uploads them in batches to a backend you control.
Features
- Foreground tracking with platform location (system fused on Android 12+, GPS on older devices)
- Native OBD over BLE or Classic Bluetooth — no proprietary Google Play location libraries
- ECU-aware sessions: tracking can follow adapter connectivity
- Durable offline queue (Room) with batch upload and retry
- Fuel and vehicle settings for estimated consumption from OBD signals
- Dashboard gauges, settings (including QR provisioning), and OBD debug log
- No ads, no analytics SDKs, no crash-reporting trackers baked in
Backend (you choose)
- Prefer self-hosting the free/open companion platform: my-car-tracking-platform
- Or use any wire-compatible HTTP API (/start, /stop, /samples) with a device token
- Optional community-hosted instance: mycar.domivega.com (configure URLs and token in Settings; nothing is hard-required at build time)
Permissions (why)
- Location (including background while tracking) — write track points
- Bluetooth / nearby devices — talk to the ELM327 dongle
- Notifications & foreground service — keep a trip alive reliably
- Camera (optional) — scan provisioning QR codes from your web console
- Internet — upload queued samples when you configure a server
- Boot completed — re-arm lightweight auto-connect / presence after reboot
Privacy
Samples and credentials stay on your phone until you point the app at a server you trust. Defaults ship empty / placeholder hostnames. BLE addresses and API tokens are stored only in app settings on device.
License
MIT. Source: my-car-tracking-mobile-app
Disclaimer
OBD fuel rate is estimated unless you extend the stack. Do not interact with the phone while driving.
What’s new (2.1)
Release builds are now shrunk with R8 for a smaller APK.
Versions
Permissions
What the app asks the system for. Android only grants sensitive access after you confirm it.
- Precise locationDetermine the location via GPS.
- Approximate locationDetermine the location via the network.
- Location in backgroundDetermine the location while the app is not open.
- Foreground serviceKeep running in the background, visible in the status bar.
- FOREGROUND_SERVICE_LOCATION
- FOREGROUND_SERVICE_CONNECTED_DEVICE
- NotificationsShow notifications.
- Network stateCheck whether and how the device is connected.
Show 10 more permissions
- Internet accessSend and receive data over the internet.
- Prevent sleepingKeep the device from going to sleep.
- Run at startupStart automatically after the device is switched on.
- CameraTake photos and videos.
- BluetoothConnect to Bluetooth devices.
- BLUETOOTH_ADMIN
- Bluetooth scanSearch for nearby Bluetooth devices.
- Bluetooth connectionConnect to paired Bluetooth devices.
- permission.CONTROL_SERVICE
- gps_car.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Comments