Signal Finder App for Android

Coded in Java (Android 2.3) | May 7, 2012
Cell carriers generally have maps showing their coverage, but they don't give information on how good that coverage is. As part of a software engineering course, I along with a team implemented an Android app that crowdsources signal strength data. This is aggregated and displayed in a more informative heat map of signal strength, and can also be used to provide users with the direction of better signal strength.

Android App

The app was written with the Android 2.3 SDK, and runs as a standalone app that collects data in the background.
After selecting the collection interval (how often the phone collects data), the app begins collection. This is done in the background, and the user can return to the app to check on the data being collected by clicking on the app's notification.
Data collection is done using a background service and data points are written to a file. After every 500 points collected, the app connects to a database and uploads the data. If no connection is available, it will try again after 500 more points are collected. This allows the user to collect data with just the GPS on.
The app will display the most recent data gathered, as well as the direction in which a better signal can be found. This is calculated based on the user's GPS location, the internal gyroscope of the phone which acts as a compass, and data aggregated from other users.
     

The Website

The website provides an interface to allow users to view data that has been collected. A table of all the raw data is included. There is also a heat map colored according to the signal strength, based on aggregated user data stored in a MySQL database. Most of the website was done in PHP and JavaScript to work with the Google Maps API.

You can visit the website here, although the database is no longer up.