A powerful Android app to monitor, analyze, and optimize your LTE/5G connection
- What's New
- Features
- Screenshots
- Requirements
- Installation
- Building from Source
- Project Structure
- Architecture & Tech Stack
- Permissions
- How It Works
- Contributing
- License
- Support
- Live Network Band Info: Dynamically detects and displays the connected LTE/5G Band in real-time, handling required location permissions gracefully.
- LTE Only PRO (Premium Tier): Integrated RevenueCat for robust subscription management. Users can upgrade to an ad-free Pro tier to unlock advanced network tools like the Game Servers Ping Analyzer and historical analytics.
- Google Play In-App Reviews: Seamlessly integrates the native In-App Review API, intelligently and silently triggering after successful network switching flows without spamming the user.
- Massive Performance Optimizations: App size reduced by over 50% for release builds using aggressive R8 shrinking, strict resource minification, unused dependency stripping, and comprehensive WebP asset conversion, all without compromising UI/UX!
- Real-time Signal Analysis - Monitor RSRP, RSRQ, RSSI, and SINR signal metrics.
- Carrier & Band Information - View carrier name, network type, MCC/MNC codes, Cell ID, and live LTE/5G NR Band tracking.
- Connection Status - Live connection state and roaming detection.
- Speed Tests - Measure your actual download and upload speeds.
- Ping/Latency Test - Check your network response time.
- Gaming Ping Analyzer (PRO) - Real-time regional server latency tests tailored for global gaming servers.
- Signal History Chart - Visualize signal strength changes over time.
- Pro Analytics - Review historical speed test results with clear, dynamic charts.
- Data Usage Tracking - Monitor mobile and Wi-Fi data consumption.
- 4G LTE Switcher - Quick access to force LTE network mode via hidden system settings (with fallback dialer intents).
- APN Settings - Direct link to configure your APN settings.
- Background Monitoring - Continuous signal monitoring while the app is running.
- 100% Jetpack Compose - Built entirely with modern declarative UI.
- Neumorphic Design - Beautiful, modern UI with soft shadows and depth.
- Theme Engine - Dynamically adapts to Light, Dark, and System themes.
- Ad-Free Interface (PRO) - Completely remove all banner, interstitial, and app-open ads.
- Android Version: 7.0 Nougat (API 24) or higher
- Device: Any Android device with cellular capabilities
- Permissions: Location and Phone State access required for signal and band monitoring
- Download the latest APK from the Releases page
- Enable "Install from unknown sources" in your device settings
- Open the downloaded APK file
- Tap Install
Before building, ensure you have the following installed:
- Android Studio (Hedgehog or newer recommended)
- JDK 11 or higher
- Android SDK with API Level 36
- Gradle (included in the project)
-
Clone the repository
git clone https://github.com/ishara-madu/4GLTEOnlyApp.git cd ForceLTEOnly -
Configure Security & Keys (local.properties) Create a
local.propertiesfile in the root directory and add your API keys:REVENUECAT_API_KEY=your_revenuecat_key_here ADMOB_APP_ID=ca-app-pub-your_admob_app_id ADMOB_BANNER_ID=ca-app-pub-your_banner_id ADMOB_INTERSTITIAL_ID=ca-app-pub-your_interstitial_id ADMOB_APP_OPEN_ID=ca-app-pub-your_app_open_id
-
Open in Android Studio
- Select "Open an existing project" and navigate to the cloned directory.
- Wait for Gradle sync to complete.
-
Build the Debug APK
./gradlew assembleDebug
-
Build the Release APK
./gradlew assembleRelease
Note: Release builds are heavily optimized with R8. Ensure your keys are valid to prevent build failures.
ForceLTEOnly/
βββ app/
β βββ src/
β β βββ main/
β β βββ java/com/pixeleye/lteonly/
β β β βββ MainActivity.kt # Main Compose entry point
β β β βββ LteOnlyApplication.kt # Application class (RevenueCat/AdMob Init)
β β β βββ TelephonyService.kt # Core signal & band monitoring
β β β βββ RadioInfoHelper.kt # Opens LTE settings
β β β βββ PremiumUpgradeScreen.kt # Custom RevenueCat Paywall UI
β β β βββ ProStateManager.kt # Global premium state flow
β β β βββ AdManager.kt # Strict AdMob implementation
β β β βββ Room DB & Repositories # Local Data Persistence
β β β βββ ui/
β β β βββ theme/ # Material 3 & Neumorphic styling
β β βββ res/ # Compressed WebP Android resources
β β βββ AndroidManifest.xml
β βββ build.gradle.kts # App-level build logic
β βββ proguard-rules.pro # Custom R8 keep rules
βββ gradle/ # Gradle wrapper
βββ build.gradle.kts # Root build file
βββ local.properties # Secret Keys (Git Ignored)
The app follows a clean, modular architecture pattern strictly adhering to modern Android development practices.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β UI Layer β
β (100% Jetpack Compose - Reactive State Flows) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Domain Layer β
β (TelephonyService, RadioInfoHelper, ProStateManager) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Data Layer β
β (Room Database, RevenueCat SDK, AdMob SDK, Data Repos) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Category | Technology |
|---|---|
| Language | Kotlin 1.9+ |
| UI Framework | Jetpack Compose (Material 3) |
| Architecture | MVVM + Clean Architecture |
| Monetization | RevenueCat (Purchases SDK) |
| Ads | Google AdMob |
| Database | Room Persistence Library |
| Async | Kotlin Coroutines & Flow |
| Build System | Gradle with Kotlin DSL |
The app requires the following permissions to function:
| Permission | Purpose |
|---|---|
READ_PHONE_STATE |
Access signal strength and network information |
ACCESS_FINE_LOCATION |
Required for accurate cell tower and LTE Band detection |
ACCESS_COARSE_LOCATION |
Fallback location access |
INTERNET |
Speed test functionality & API interactions |
POST_NOTIFICATIONS |
Speed test reminders (Android 13+) |
- The app uses Android's
TelephonyManagerto access cellular information. CellInfoLteandCellInfoNrprovide detailed signal metrics and LTE bands.- Data is stored in a Room database for historical analysis.
- The app provides a shortcut button to open system Radio Info menus.
- From there, users can select their preferred network mode (LTE only, 5G preferred, etc.).
- Note: Direct programmatic network mode changes are restricted by Android for security.
Contributions are welcome! Here's how you can help:
- Fork the Repository
- Create a Feature Branch (
git checkout -b feature/your-feature-name) - Commit Your Changes (
git commit -m "Add: your feature description") - Push and Create Pull Request
- Use GitHub Issues to report bugs
- Include your Android version and device model
- Provide steps to reproduce the issue
This project is licensed under the MIT License - see the LICENSE file for details.
If you find this app useful, please consider:
- β Starring the repository
- β¬οΈ Rating on Google Play Store
- Built with Jetpack Compose
- Monetization powered by RevenueCat
- Design inspired by modern neumorphic UI trends
Made with β€οΈ by Ishara Madhusanka





