Spectrum 2.4GHz is built for modern Android devices but maintains compatibility back to Android 6.0 (Marshmallow), covering the vast majority of active Android handsets. Before installing or distributing the app, verify that the target device meets the minimum OS and hardware requirements listed below, and ensure users understand which runtime permissions the app will request.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/anfegomezver/spectrum24ghz/llms.txt
Use this file to discover all available pages before exploring further.
System Requirements
| Requirement | Value |
|---|---|
| Operating System | Android 6.0 (Marshmallow) or higher |
| Minimum SDK (minSdk) | API Level 23 |
| Target SDK (targetSdk) | API Level 34 (Android 14) |
| Compile SDK | API Level 34 |
| Java Version | Java 8 (source/target compatibility 1.8) |
| App Version Name | 1.0 |
| App Version Code | 1 |
| Package / Application ID | com.spectrum24ghz |
| Hardware | Device must have a 2.4 GHz capable Wi-Fi adapter |
Wi-Fi does not need to be connected — or even enabled — for the app to scan. Android’s “Scan Always Available” mode (found under Settings → Location → Advanced → Wi-Fi scanning) allows the Wi-Fi radio to perform passive scans even while the Wi-Fi switch is off. Spectrum 2.4GHz checks
WifiManager.isScanAlwaysAvailable() and will prompt the user to enable this setting if both Wi-Fi and scan-always are disabled.Required Permissions
The following permissions are declared inAndroidManifest.xml. The app requests only the permissions needed to perform Wi-Fi scanning and display location-gated results:
| Permission | API Level | Purpose |
|---|---|---|
ACCESS_WIFI_STATE | All | Read current Wi-Fi state and trigger getScanResults() |
CHANGE_WIFI_STATE | All | Call WifiManager.startScan() to initiate active scans |
ACCESS_NETWORK_STATE | All | Inspect general network connectivity state |
ACCESS_COARSE_LOCATION | All (23+) | Required by Android to expose Wi-Fi scan results |
ACCESS_FINE_LOCATION | All (23+) | Required for precise BSSID and SSID data in scan results |
NEARBY_WIFI_DEVICES | API 33+ (Android 13) | Replaces location permission for Wi-Fi scanning on Tiramisu and above |
MainActivity.requiredPermissions() builds the permission list dynamically — NEARBY_WIFI_DEVICES is only added on devices running Android 13 or higher:
Android Version Behavior Differences
Spectrum 2.4GHz adjusts its behavior at two specific API-level boundaries:Android 10+ (API Level 30)
Signal strength is calculated using the device-reported maximum level viaWifiManager.getMaxSignalLevel(), which accounts for vendor-specific signal granularity:
Android 13+ (API Level 33 — Tiramisu)
Two changes apply on Tiramisu and above:NEARBY_WIFI_DEVICESpermission is required in addition to (or instead of) location permissions for Wi-Fi scanning.RECEIVER_NOT_EXPORTEDflag must be passed when registering theBroadcastReceiverforSCAN_RESULTS_AVAILABLE_ACTION, preventing other apps from sending forged scan-results broadcasts:
Library Dependencies
All dependencies are sourced from the standard AndroidX and Google Maven repositories. No third-party networking or analytics libraries are included.| Library | Version | Purpose |
|---|---|---|
androidx.core:core | 1.12.0 | Core AndroidX utilities and compatibility helpers |
androidx.appcompat:appcompat | 1.6.1 | Backward-compatible Activity and UI components |
com.google.android.material:material | 1.11.0 | Material Design components (dialogs, buttons, theming) |
androidx.constraintlayout:constraintlayout | 2.1.4 | Flexible constraint-based layout engine |
androidx.recyclerview:recyclerview | 1.3.2 | Efficient scrolling lists for network and channel views |
androidx.coordinatorlayout:coordinatorlayout | 1.2.0 | Coordinator layout for scroll-based behaviors |
buildFeatures { viewBinding true }), eliminating findViewById calls throughout the codebase. Code minification is disabled in the release build type, so ProGuard rules are not applied by default.