The Network Survey Android App provides a basic survey capability for Cellular networks, Wi-Fi networks, Bluetooth Devices, and GNSS constellations.
For cellular data, in its current state it can be used to examine the network details of the current serving cell, and log GSM, CDMA, UMTS, LTE, and NR records to a GeoPackage file. Wi-Fi survey records can also be logged to a GeoPackage file, and the current list of Wi-Fi networks in range is displayed in the UI. The App also supports connecting to a remote gRPC server and live streaming the cellular and Wi-Fi records. For GNSS data, it can display the latest information about the satellite vehicles and also log the information to a GeoPackage file. The Bluetooth support allows for scanning and displaying a list of the nearby Bluetooth devices.
To build and install the project follow the steps below:
1) Clone the repo.
2) Open Android Studio, and then open the root directory of the cloned repo.
3) Connect an Android Phone (make sure debugging is enabled on the device).
4) Install and run the app by clicking the "Play" button in Android Studio.
If you want to build using the command line, the apk can be built and installed using the following commands. Make sure your phone is connected to your computer before running the install command.
NOTE: If building on Windows, replace
./gradlew
withgradlew
./gradlew assembleDebug
./gradlew installDebug
NOTE: This requires a connected device (physical device or Android Emulator)
./gradlew connectedAndroidTest
Install Android Studio to work on this code.
- GeoPackage Android - The logging file standard and library
The Google Play Listing for this app
The Network Survey app supports streaming GSM, CDMA, UMTS, LTE, and 802.11 survey records to a gRPC server. More specifically, the Network Survey Messaging library can be used to stand up a gRPC server. From there it is up to the implementation to handle the incoming survey messages.
Currently, GSM, CDMA, UMTS, LTE, NR, 802.11, Bluetooth and GNSS survey records are sent to a connected MQTT broker. They are published on the following MQTT Topics:
- gsm_message
- cdma_message
- umts_message
- lte_message
- nr_message
- 80211_beacon_message
- bluetooth_message
- gnss_message
There is also a DeviceStatus and a PhoneState message that is published on
the device_status_message
topic.
The MQTT Broker connection supports both plain text and TLS/SSL connections.
The survey messages are sent in JSON format following the protobuf definitions from the Network Survey Messaging library. The API documentation is published to a web page here.
QR Code for MQTT Broker connection setting needs to provide a JSON string with the following fields.
{"mqtt_username":"auser","mqtt_password":"apassword","mqtt_host":"cloud.azure.com","mqtt_port":8883,"mqtt_client":"aclient","mqtt_tls":true}
See the change log for details about each release: CHANGELOG.md
- Christian Rowlands - Craxiom