Privacy-first Wi-Fi Channel Analyzer for Android
Find the best Wi-Fi channel using real interference analysis instead of simply counting nearby networks.
ChannelSense is a modern Android application that helps users choose the most suitable Wi-Fi channel for their router.
Unlike many Wi-Fi analyzer applications that only count nearby access points, ChannelSense evaluates multiple radio characteristics to estimate actual channel interference.
The recommendation engine considers:
- Signal strength (RSSI)
- Channel width
- Frequency overlap
- Band characteristics
- Current connected network
- Confidence score
Everything runs entirely on-device.
No cloud.
No analytics.
No tracking.
No advertisements.
Most Wi-Fi analyzer applications rank channels by simply counting nearby networks.
In real environments this is rarely accurate.
Two networks on the same channel do not always create the same amount of interference.
ChannelSense estimates channel quality using a weighted interference model that includes:
- RSSI weighting
- Channel width
- Frequency overlap
- Adjacent channel influence
- Band-specific behavior
The result is a recommendation that better reflects real wireless conditions.
- 2.4 GHz analysis
- 5 GHz analysis
- 6 GHz analysis
- Current connected channel detection
- Nearby Access Point discovery
- RSSI visualization
- Channel utilization graph
- Alternative channel recommendations
- Confidence indicator
Single scan for instant recommendations.
Ideal for everyday users.
Performs multiple measurements to reduce temporary fluctuations and provide more stable recommendations.
ChannelSense recommends channels using:
- RSSI weighted scoring
- Frequency overlap calculations
- Channel width impact
- Adjacent channel interference
- Confidence estimation
This produces significantly more useful recommendations than network-count based approaches.
ChannelSense also helps users apply the recommendation.
Features include:
- Router setup guides
- Common router brands
- Gateway detection
- Open router admin page directly
- Channel configuration instructions
Privacy is a core design principle.
ChannelSense:
- does not require an account
- does not upload Wi-Fi information
- does not collect analytics
- does not use advertising SDKs
- does not communicate with any backend server
All analysis is performed locally on the device.
For more information see:
- PRIVACY.md
| Home | Analysis | Recommendation |
|---|---|---|
![]() |
![]() |
![]() |
The project follows a clean and modular architecture.
app
│
├── domain
│ └── Recommendation Engine
│
├── feature
│ ├── Analyzer
│ ├── Settings
│ └── Router Guide
│
├── wifi
│ ├── Scanner
│ ├── Connection
│ └── Permissions
│
├── ui
│
└── util
Core recommendation logic is independent from Android APIs, making it easy to test and maintain.
- Kotlin
- Jetpack Compose
- Material 3
- Navigation Compose
- ViewModel
- DataStore
- Android Wi-Fi APIs
- Android 9+
- Gradle Kotlin DSL
domain/
ChannelRecommendationEngine
feature/
analyzer/
settings/
guide/
wifi/
scanner/
permissions/
connection/
ui/
theme/
navigation/
util/
- Android 9 (API 28) or newer
- Wi-Fi enabled
- Location Services enabled (required by Android)
- Nearby Wi-Fi permission
- Location permission (depending on Android version)
Clone the repository.
git clone https://github.com/mahmutaunal/ChannelSense.gitOpen with Android Studio.
Build:
./gradlew assembleDebugRun tests:
./gradlew testDebugUnitTestGenerate Release:
./gradlew assembleReleaseAndroid applies several restrictions to Wi-Fi scanning.
Because of platform limitations:
- scan results may be cached
- scan frequency may be throttled
- hidden networks may not appear
- DFS channels behave differently
- mesh systems may affect results
Recommendations are estimates based on the access points visible to the device at scan time.
Contributions are welcome.
If you would like to:
- fix bugs
- improve the recommendation engine
- optimize performance
- improve translations
- enhance the UI
please open an Issue or submit a Pull Request.
Future ideas include:
- Material You dynamic color
- Tablet optimization
- Foldable support
- Better visualization
- Export scan results
- Historical comparison
- Automatic periodic scans
- More router setup guides
- Improved DFS awareness
Licensed under the Apache License 2.0.
See the LICENSE file for details.
Mahmut Alperen Ünal
GitHub
https://github.com/mahmutaunal
If you find this project useful:
- ⭐ Star the repository
- 🐞 Report bugs
- 💡 Suggest new features
- 🤝 Contribute to the project
Made with ❤️ using Kotlin and Jetpack Compose.
ChannelSense uses the dedicated Google Play Core libraries for in-app reviews and in-app updates. The Play-specific implementation lives under play/ so the UI and application features remain decoupled from Google Play APIs.
In-app review and update flows must be tested with a Google Play-installed build. For update testing, use Play Console Internal App Sharing or an internal testing track with a higher
versionCode.
ChannelSense does not ask for a rating on first launch. The automatic Google Play review flow becomes eligible only after meaningful use: repeated successful scans, multiple sessions, at least two days since first use, and exploration of detailed analysis or the channel guide. All counters remain on-device; no analytics or Wi-Fi data is transmitted. A long cooldown and a strict attempt limit prevent repeated interruptions. The manual rating action remains available in Settings.


