Privacy Policy – WiFi Monitor
Effective Date: April 16, 2026 | Last Updated: September 30, 2026
1. Introduction
WiFi Monitor ("we", "our", or "the app") respects your privacy. This policy explains what information the Android app accesses, how it is used, and the limited circumstances under which information may be processed. The app is designed with a privacy-first architecture: network scan results, local device lists, speed test history, and your settings are processed locally on your device and are never transmitted to any server operated by us.
2. Summary at a Glance
- No user account, sign-up, or personal identity collected.
- WiFi scan results (SSID, BSSID, signal strength, channel, security type) are processed on-device only.
- Location permission is requested solely because Android requires it to return WiFi scan results — the app does not read, store, or transmit your GPS coordinates.
- Network diagnostic tools (Speed Test, Health Check, WHOIS) connect to public endpoints (Cloudflare, Google, WHOIS servers) strictly when initiated by you, without sending personal data.
- Speed test history and app preferences are stored in a local SQLite database (Room) and DataStore on your device only.
- Ads are provided by Google AdMob (banner, native, interstitial, and app-open), which may use the Advertising ID.
- Firebase Analytics and Crashlytics collect anonymized usage and crash diagnostics to improve stability (release builds only).
- Uninstalling the app removes all locally stored data and databases.
3. Information the App Processes (Device-Local)
Read locally for display and analysis only:
- Nearby WiFi Networks: SSID (network name), BSSID (access point MAC address), signal strength (RSSI in dBm and percentage), frequency (MHz), channel number, channel width, frequency band (2.4 GHz / 5 GHz / 6 GHz), and security encryption type (WPA/WPA2/WPA3/Open).
- Connected Network Details: SSID, BSSID, PHY link speed (Rx/Tx Mbps), gateway IP address, subnet mask, local IP address, and DNS servers.
- Local LAN Devices: IP address, MAC address, hostname (via DNS, mDNS, NetBIOS), and vendor name of devices connected to your local subnet during an active LAN scan.
- Hardware Capabilities: Android device support for 5 GHz, 6 GHz (Wi-Fi 6E), Wi-Fi 7, and Passpoint.
- Vendor / Manufacturer Lookup: Hardware brands derived from MAC/BSSID prefixes using an offline IEEE OUI lookup table bundled within the app. No internet connection is required for this lookup.
- Approximate Distance: Computed locally from signal attenuation using standard radio propagation formulas.
- Speed Test & Coverage Metrics: Download speed, upload speed, latency (ping), jitter, and room-by-room coverage sample readings.
This information is processed on your device and is never sent to any servers controlled by us.
4. What We Do Not Collect
- No name, email address, phone number, contacts, accounts, photos, or personal files.
- No GPS coordinates or precise/coarse geolocation — the Android location permission is used solely to access WiFi hardware scan results (see Section 5).
- No saved WiFi passwords or network security keys.
- No internet browsing history or network payload traffic.
- No cloud-synced logs, tracking profiles, or persistent server-side history.
5. Why Location Permission Is Required
Starting with Android 6.0 (and strengthened in subsequent Android versions), the Android OS requires apps scanning for nearby WiFi access points to hold the ACCESS_FINE_LOCATION (or ACCESS_COARSE_LOCATION) permission. This is an operating system requirement because visible access point identifiers could theoretically be used to estimate location.
WiFi Monitor uses this permission strictly to trigger and receive Android WiFi scans. The app:
- Does not access GPS hardware or read GPS coordinates.
- Does not use the Android Fused Location Provider.
- Does not record, store, or transmit your geographical location.
If this permission is not granted, Android prevents the app from receiving WiFi scan results.
6. How Information Is Used Locally
- To display real-time signal strength gauges, charts, and channel occupancy graphs.
- To rate channels (0 to 10) and recommend the least congested channel for your router.
- To discover connected devices on your local Wi-Fi subnet and provide Wake-on-LAN (WOL) capabilities.
- To diagnose connection bottlenecks (differentiating Wi-Fi link limits from ISP speed limits).
- To provide audio/vibration feedback in the Locate Router tool to help you physically find an access point.
- To measure coverage quality room by room and detect dead zones.
We do not sell, rent, monetize, or share any of this technical data.
7. Local Storage & Retention
- App Preferences: Display preferences, themes (Light, Dark, OLED), and onboarding states are stored locally in Jetpack DataStore.
- Speed Test History: Results from your completed speed tests (download, upload, ping, jitter, timestamp, network SSID) are stored locally in an on-device SQLite database via Android Room. You can export or clear this history at any time.
- Scan Results: Real-time WiFi scan results are kept in memory while the screen is active and are discarded when closed.
- Data Deletion: All locally stored preferences and databases are completely deleted when you clear app storage or uninstall the app from your device.
8. Network Requests for Diagnostic Tools
When you explicitly run certain diagnostic tools within the app, outgoing network requests are made to public services:
- Internet Speed Test: Connects to Cloudflare speed test endpoints (
speed.cloudflare.com) to measure download throughput, upload throughput, ping latency, and jitter.
- Network Health Check: Pings your local gateway router and Google public DNS (
8.8.8.8), queries DNS resolution times, and tests HTTP connectivity against standard captive portal detection endpoints.
- Network Tools (Ping, Traceroute, WHOIS): Ping and Traceroute send standard ICMP/UDP packets to the host you specify. WHOIS queries public WHOIS registry servers (such as
whois.iana.org) to retrieve public domain/IP registration records.
These requests contain only the standard network packets necessary to perform the requested test; no personal data, device identifiers, or WiFi scan lists are sent.
9. Advertising (Google AdMob)
The app displays advertisements powered by Google Mobile Ads (AdMob), including banner ads, native ads, occasional interstitial ads, and app-open ads. AdMob may collect and process:
- Google Advertising ID (resettable by user), IP address, device hardware model, coarse location derived from IP, and ad interaction metrics for ad serving, frequency capping, and fraud detection.
For more details, see the Google Privacy Policy. You can control personalized advertising or reset your Advertising ID via your Android system settings (Settings → Google → Ads) or at https://adssettings.google.com.
EEA / UK / Switzerland Users: Google's User Messaging Platform (UMP) consent SDK is integrated for compliance with GDPR and the IAB TCF framework. Users in eligible regions are prompted with a consent dialog to manage personalized vs. non-personalized advertising choices, and can revisit these choices at any time in the app's Settings.
10. Firebase Analytics & Crashlytics (Google)
Release builds of the app include Firebase Analytics and Firebase Crashlytics to monitor application performance and stability. These services collect:
- Anonymized engagement metrics (screen views, feature usage, session duration).
- Crash reports, stack traces, and device state at the time of an unexpected error.
- Basic device metadata (device model, Android OS version, app version).
No personally identifiable information is collected. Analytics and Crashlytics are completely disabled in debug development builds. See Firebase Privacy & Security for additional information.
11. Permissions Used
ACCESS_WIFI_STATE: Required to read information about available WiFi networks and the active connection.
CHANGE_WIFI_STATE: Required to trigger WiFi scan refreshes.
ACCESS_FINE_LOCATION / ACCESS_COARSE_LOCATION: Required by Android OS to perform WiFi scanning. The app does not access GPS or track your location (see Section 5).
ACCESS_NETWORK_STATE: Required to check connectivity status and detect network changes.
INTERNET: Required for speed testing, network diagnostic tools, AdMob ad delivery, and Firebase crash reporting.
VIBRATE: Used to provide tactile feedback in the Locate Router tool (vibration pulses faster as signal strength increases).
com.google.android.gms.permission.AD_ID: Declared for Google Play Advertising ID access for AdMob ad delivery and fraud prevention.
12. Security
- All application components operate within Android's sandboxed environment.
- Diagnostic network requests use standard HTTPS or direct ICMP/socket connections where appropriate.
- Because personal data is not collected or stored on our servers, no external account breach risk exists for our users.
13. Children's Privacy
WiFi Monitor is a general utility app and is not directed at children under the age of 13. We do not knowingly collect personal data from children.
14. Changes to This Policy
We may update this Privacy Policy from time to time to reflect updates in app functionality, Android OS requirements, or applicable regulations. Changes will be posted to this page with an updated "Last Updated" date.
15. Contact
If you have any questions, feedback, or concerns regarding this Privacy Policy, please contact us at: tofa.du@gmail.com