GPS Test Pro is a professional Android application for testing and analyzing GPS/GNSS satellite signals. Developed with modern Android technologies, it provides real-time satellite tracking, signal analysis, and location information.
Built from scratch using Kotlin and Jetpack Compose with a modern MVVM architecture.
- Real-time signal strength visualization with bar charts
- Support for multiple constellations: GPS (USA ๐บ๐ธ), GLONASS (Russia ๐ท๐บ), GALILEO (EU ๐ช๐บ), BEIDOU (China ๐จ๐ณ), QZSS (Japan ๐ฏ๐ต), IRNSS (India ๐ฎ๐ณ), SBAS
- Color-coded signal quality indicators:
- ๐ข Green: Excellent signal (โฅ30 dB)
- ๐ก Yellow: Good signal (20-30 dB)
- ๐ด Red: Weak signal (<20 dB)
- โช Gray: No signal
- Visual indication of satellites used in position fix (โ)
- Grouped by constellation with country flags
- Real-time satellite positions on compass view
- Azimuth and elevation angle visualization
- Color-coded satellites by signal strength
- Cardinal directions (N, S, E, W) overlay
- Interactive satellite selection with highlighting
- Sensor-based digital compass with smooth animations
- Real-time heading display in degrees
- Cardinal and intercardinal directions (N, NE, E, SE, S, SW, W, NW)
- Compass calibration status with color indicators:
- ๐ข Good: High accuracy
- ๐ก Medium: Acceptable accuracy
- ๐ Low: Needs calibration
- ๐ด Poor: Calibration required
- Built-in calibration guide
- Location information display
- Real-time location tracking on OpenStreetMap
- No API key required (uses OSMDroid)
- Breadcrumb trail showing last 100 locations
- 5-meter threshold for trail recording
- Automatic map centering and zoom
- Works offline with cached tiles
- Comprehensive location information:
- Latitude and Longitude (6 decimal precision)
- Altitude (meters)
- Speed (km/h)
- Accuracy (ยฑmeters)
- Bearing (degrees)
- UTC timestamp
- Satellite statistics:
- Total visible satellites
- Satellites used in fix
- Breakdown by constellation
- Organized in beautiful Material 3 cards
- Detailed information for each satellite:
- Satellite ID (SVID)
- Constellation type and country
- Signal strength (C/N0 in dB)
- Signal quality rating
- Elevation and azimuth angles
- Ephemeris and Almanac status
- Usage in position fix
- Connection duration tracking
- Interactive satellite selection
- Sortable by constellation and ID
- Full-screen detail dialog
- Isometric 3D visualization of satellite positions
- Height-based satellite rendering
- Color-coded by signal quality
- Elevation circles (0ยฐ, 30ยฐ, 60ยฐ, 90ยฐ)
- Signal strength distribution chart
- Sorted by signal power (strongest to weakest)
- Visual bar representation
- Individual satellite signal bars
- Constellation distribution statistics
- Usage, quality, and weak signal metrics
- Visual density bars
- Per-constellation breakdown
- Application information and version
- Feature list
- Developer information
- Technical specifications
- Privacy policy link
- Modern Material 3 Design with dark theme
- Responsive layouts adapting to different screen sizes:
- Compact (<600dp): Phones
- Medium (600-840dp): Large phones, small tablets
- Expanded (>840dp): Tablets
- Smooth animations and transitions
- Animated dropdown menu navigation
- Professional splash screen with fade-in animation
- Turkish localization throughout the app
- Language: Kotlin 1.9.22
- UI Framework: Jetpack Compose (BOM 2024.02.00)
- Architecture: MVVM (ViewModel + StateFlow)
- Minimum SDK: 24 (Android 7.0 Nougat)
- Target SDK: 35 (Android 15)
- Compile SDK: 35
- Jetpack Compose: Modern declarative UI
- Material 3: Latest Material Design components
- Lifecycle & ViewModel: State management
- Kotlin Coroutines & Flow: Asynchronous operations
- OSMDroid 6.1.18: OpenStreetMap integration (no API key)
- Google Play Services Location 21.1.0: GPS/GNSS access
- Accompanist Permissions: Runtime permission handling
- GnssStatus.Callback: Real-time satellite data
- LocationManager: GPS location updates
- SensorManager: Compass and orientation sensors
- StateFlow: Reactive state management
<!-- GPS & Location -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- Sensors (Compass) -->
<uses-permission android:name="android.permission.ACCESS_SENSOR_DATA" />
<!-- Internet & Network (Map tiles) -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- External Storage (OSM cache, Android <=12) -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />- Android Studio Hedgehog (2023.1.1) or later
- JDK 17
- Android SDK 35
- Gradle 8.7
-
Clone the repository
git clone https://github.com/cektor/GPSTestPro.git cd GPSTestPro -
Open in Android Studio
- File โ Open โ Select project folder
- Wait for Gradle sync
-
Build the project
./gradlew build
-
Run on device/emulator
- Connect Android device or start emulator
- Click Run (
โถ๏ธ ) or press Shift+F10
-
Grant permissions
- Allow location access when prompted
- Enable GPS/Location services
- Launch the app - Splash screen appears for 2.5 seconds
- Grant location permission - Required for GPS access
- Navigate between screens - Use the hamburger menu (โฐ) in top-right
- View satellite signals - Signal screen shows real-time data
- Track location - Map screen displays your position with trail
- Analyze satellites - Details screen provides in-depth information
- Check compass - Compass screen shows heading and calibration
- Best results - Use outdoors with clear sky view
gps_test/
โโโ app/
โ โโโ src/
โ โ โโโ main/
โ โ โ โโโ java/com/alg/gpstestpro/
โ โ โ โ โโโ MainActivity.kt
โ โ โ โ โโโ model/
โ โ โ โ โ โโโ SatelliteInfo.kt
โ โ โ โ โโโ viewmodel/
โ โ โ โ โ โโโ GpsViewModel.kt
โ โ โ โ โโโ ui/
โ โ โ โ โ โโโ GpsTestApp.kt
โ โ โ โ โ โโโ screens/
โ โ โ โ โ โ โโโ SplashScreen.kt
โ โ โ โ โ โ โโโ SignalScreen.kt
โ โ โ โ โ โ โโโ SkyScreen.kt
โ โ โ โ โ โ โโโ CompassScreen.kt
โ โ โ โ โ โ โโโ MapScreen.kt
โ โ โ โ โ โ โโโ DataScreen.kt
โ โ โ โ โ โ โโโ SatelliteDetailsScreen.kt
โ โ โ โ โ โ โโโ Satellite3DScreen.kt
โ โ โ โ โ โ โโโ SignalHeatmapScreen.kt
โ โ โ โ โ โ โโโ SatelliteDensityScreen.kt
โ โ โ โ โ โ โโโ AboutScreen.kt
โ โ โ โ โ โโโ theme/
โ โ โ โ โ โ โโโ Theme.kt
โ โ โ โ โ โโโ utils/
โ โ โ โ โ โโโ ResponsiveUtils.kt
โ โ โ โโโ res/
โ โ โ โ โโโ drawable/
โ โ โ โ โ โโโ gpslogo.png
โ โ โ โ โ๏ฟฝ๏ฟฝ๏ฟฝโ values/
โ โ โ โโโ AndroidManifest.xml
โ โ โโโ build.gradle.kts
โ โโโ proguard-rules.pro
โโโ gradle/
โโโ README.md
โโโ README-TR.md
โโโ privacy_policy.md
GPS Test Pro respects your privacy:
- โ NO personal data collection
- โ NO cloud synchronization
- โ NO third-party analytics
- โ NO advertising
- โ All processing is local
- โ Location data stays on device
- โ Open source and transparent
See Privacy Policy for details. Location data stays on device
- โ Open source and transparent
See Privacy Policy for details.
- GPS Testing: Verify GPS functionality on new devices
- Signal Analysis: Analyze satellite signal quality in different locations
- Navigation Development: Test location accuracy for navigation apps
- Outdoor Activities: Check GPS signal before hiking/camping
- Research & Education: Learn about GNSS constellations
- Troubleshooting: Diagnose GPS issues on Android devices
| Constellation | Country/Region | Satellites | Flag |
|---|---|---|---|
| GPS | USA | 31+ | ๐บ๐ธ |
| GLONASS | Russia | 24+ | ๐ท๐บ |
| GALILEO | European Union | 30+ | ๐ช๐บ |
| BEIDOU | China | 35+ | ๐จ๐ณ |
| QZSS | Japan | 4+ | ๐ฏ๐ต |
| IRNSS (NavIC) | India | 7+ | ๐ฎ๐ณ |
| SBAS | Various | Regional | ๐ |
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is developed for educational purposes.
ALG Yazฤฑlฤฑm & Elektronik Inc.
Fatih รNDER
- Android Jetpack Compose team for the amazing UI framework
- Material Design team for design guidelines
- OpenStreetMap contributors for map data
For issues, questions, or suggestions:
- Open an Issue
- Contact: [info@algyazilim.com]
- โ Initial release
- โ 10 functional screens
- โ Multi-constellation support
- โ Real-time satellite tracking
- โ OpenStreetMap integration
- โ Compass with calibration
- โ Material 3 design
- โ Responsive layouts
- โ Turkish localization
Made with โค๏ธ using Kotlin & Jetpack Compose
โญ Star this repo if you find it useful! โญ




