Home‎ > ‎

RF Signal Tracker

Title page image

Initial Release: October 2009
Latest version: 2.5.9, February 2013

  • Monitor data traffic bytes.
  • Scrollable XY Chart of RF and WiFi signal strength, and Rx/Tx data traffic over time.
  • Voice notification of signal strength & technology changes, handovers, open hotspots, and more!
  • Notes! Insert notes into the RF data collected. Notes can be viewed & edited in Big Picture
  • 'Drive Mode' screen showing just RSSI, Cell ID, and technology to view while driving
  • Localized for French, Spanish, Portuguese, and German (thank you Lutz!).
  • Map and record a color coded signal strength marker as you travel.
  • User can redefine site locations on the map.
  • Play back, pause, jump to any part of recorded data.
  • Share current RSSI and Maps  with Twitter, Facebook, whatever you can share with.
  • Sector coverage zones describing sector orientation and beamwidth.
  • One Cell Tracking to examine coverage of a single cell site.
  • Sound and Vibration notification on handover.
  • Possible handoff neighbors.
  • User defined sites can be exported or imported for later use.
  • User site data can use optional cellnames in addition to cell id.
  • Serving cell can be located through Google, OpenCellID.
  • Sites located through Google or OpenCellID saved to local database.
  • Export recorded data to XML, KML, or CSV files. 
  • Import older recorded data for playback.
  • Roaming and data states, data activity, CGI.
  • WiFi MAC address, BSSID, supplicant state.
  • WiFi network access points identified.
  • EIRP/ERP and Free Space Loss calculators
  • Big picture of entire drive test or site survey
  • Auto-shutoff at minimum battery level set by user
  • Adjust GPS power settings
  • App to SD card
  • "War driving" for WiFi hotspots
  • Google Analytics for error tracking and usage analysis.


    Example of data exported from RFST to a KML file and imported into Google Earth. 
    Drive test through Seattle shows signal strength from green, to yellow, to red, and sector coverages 
    defined from that drive. Tower heights are all 100ft in the export and do not reflect actual heights.

    KML export of a drive into through Reton and Bellevue.


    The RF Signal Tracker is an engineering application for doing an impromptu hand-held *drive-test* with your Android phone. You can monitor and record the RSSI (received signal strength indication) for the phone as well as the serving cell locations, describe the cell site's zone of coverage, and save or playback that data. Some of the parameters displayed in the app are already provided on the phone (go to Settings -> About -> Status to see them). The advantage of this app is you can now save, map, replay, export and analyze that data. It's not TEMS, but it will do in a pinch.

    The data is saved in a SQLite database on the phone and can be exported to a CSV, KML (Google Earth), or XML files (CSV files can be imported back into the phone for review). In addition to signal strength, you also get the mobile's latitude, longitude, timestamp, and serving cell MCC, MNC, LAC, CellID, (or Base Station ID, Network and System ID for CDMA devices), the serving cell's latitude and longitude, and network technology used (EDGE, HSPA+, LTE etc). 

    I have found that the serving cell location data from Google is a little spotty, at least for 3G. You can try locking your phone to 2G for better results (go to Settings -> Wireless controls -> Mobile networks, then check 'Use only 2G networks'). The OpenCellID.org service is not much better -- they actually have a terribly small database of cell sites -- but it's better than nothing.

    PLEASE, Please, please, remember: this app is intended for engineers...engineers who read. So please do not email me (or leave comments on Google Play) saying things like, "The app says the tower is off the coast of Africa!" The purpose of this app is not to find cell sites, but to record data.


    My biggest headache while building this app was the GPS and the maps. Actually just the maps. I thought this 
    would be the easy part since virtually every app out there has something to do with location services and mapping, 
    but no. Actually getting the mapping info was easy, figuring out how to paint a trail onto said map was like pulling 
    teeth. My problem was painting those signal strength dots on the map. You see, I can place markers on a map by 
    using transparent layers and painting whatever I want on that. Problem is, it seems like everything out there is geared 
    toward painting a fixed number of markers on the overlay layer. I want to paint (potentially) an infinite amount of 
    marks -- who knows when the users will stop data collection? I thought I could just take a layer and keep adding 
    marks to it and putting it back over the map, but it doesn't work that way and finding out how it does work is like 
    searching for the Holy Grail. But enough bitching...

    • Using the default site location databases (Google or OpenCellID), sites will often times appear in places they clearly are not (in the middle of lakes, in another state, off the coast of Africa, etc.). This is because the serving cell is not in the database or its location is just wrong. The solution is to load your own site locations into the database.
    • When the phone is collecting data in the background and is in sleep mode (screen is off), the cell ID gets updated (which means the PhoneStateListener is working), but the signal strength reading never changes. A bug report has been filed with Google, but don't expect this to change.
    • The Bit Error Rate, EVDO, SNR and Ec/Io show a constant -1 reading (at least in GSM). This is the value the phone is putting out and not a processing error on the app's part.
    • None of the CDMA functionality has been tested by me directly as I do not have a CDMA phone or carrier contract (which is the real reason).
    • Most of the hardcore RF parameters you would want to see as an engineer are not exposed in the Android SDK. For most of that, you would need to get into the firmware of the specific device. Pretty much everything of value that I could show, I do, so the TEMS people are still in business.
    • I'm not a programmer. I'm an engineer who programs. So some things may not be as polished as I'd like.
    • As of this writing -- November 2012 -- Samsung devices do not provide neighbor cell information to Android. This is a Samsung bug.

    This application can be found in Google Play under "Tools".

    Android app on Google Play   
    Get the RF Signal Tracker Android app from SlideME.

    RF Signal Tracker Demo video

    Main Tab
    The main tab displays administrative data for the app and is broken up into phone, network, location, and wifi

    Status Bar: This bar, located at the top of the Main tab, contains the high level data parameters of signal strength, technology (EDGE, CDMA, UMTS, HSPA+, etc.), data activity, and the number of rssi records recorded. The status bar itself will change color from red to yellow to green with the change in signal strength.

    RF/WiFi Toggle buttons: These buttons toggle the recording of RF cellular data and WiFi access points (green=on, grey=off). The number of data points recorded will appear in field between the buttons. The top line is the number of RF points collected, the bottom is the number of WiFi access points collected. The WiFi database records the mobile location and the signal strength recorded at that point, not the actual location of the access point.

    DM button: Switch screen to the drive mode which displays an oversized signal strength, cellid, and technology readout. This will allow you mount the phone and easily view the essential parameters while driving.

    Voice notification: With voice notification active, the app will periodically announce the signal strength, cell id, technology, battery level, the number of open hotspots in range, cell handoff, RF and WiFi data points collected, and if the phone has no service.

    Number: The mobile's phone number.
    Phone Type: The device phone type (None, GSM, CDMA)
    IMEI/ESN: The unique device ID, for example, the IMEI for GSM and the MEID for CDMA phones.
    Manufacturer: Maker of the device
    Model: The actual model name used by the manufacturer.
    Sim Serial#: The serial number of the SIM, if applicable.
    Sim State: Returns a constant indicating the state of the device SIM card.
    Software Version: The software version number for the device, for example, the IMEI/SV for GSM phones.
    Sub ID: The unique subscriber ID, for example, the IMSI for a GSM phone.
    Signal Strength: Current signal strength the phone is receiving in dBm.
    Bit Error Rate: The GSM bit error rate (0-7, 99) (or the CDMA Ec/Io value in dB*10 depending on the technology).
    EVDO: Evolution-Data Optimized. A telecom standard for the wireless transmission of data through radio signals, 
    typically for broadband Internet access. It uses multiplexing techniques including CDMA as well as TDMA to 
    maximize both individual users' throughput and the overall system throughput.
    Ec/Io: The ratio of received pilot energy, Ec, to total received energy or the total power spectral density, Io.
    SNR: Signal-to-Noise Ratio. a measure used in science and engineering to quantify how much a signal has been 
    corrupted by noise. It is defined as the ratio of signal power to the noise power corrupting the signal.
    Battery Level: Displays the current battery level. The app will shut down at a level set by the user in the preferences screen.

    Operator: The alphabetic name of current registered carrier.
    Network State: Current network connection state
    Technology: The radio technology (network type) currently in use on the device.
    MCC/System ID: The mobile country code / cdma system identification number, -1 if unknown.
    MNC/Network ID: The mobile network code used by the carrier. / cdma network identification number, -1 if unknown.*
    LAC/Base Station ID: Location area code and cell id. / cdma base station identification number, -1 if unknown.
    Cell ID/Base Station ID: Android presents the cellid as a hexidecimal number. This is converted to decimal for the user. 
    Cdma base station identification number, -1 if unknown.
    Cellname: Optional human readable cell name.
    Roaming: Returns YES if the device is considered roaming on the current network, for GSM purposes.
    International: Returns YES if the Sim Operator does not match the Network Operator which will happen if 
    internationally roaming (still working on this).
    Call State: The current call state (Idle, Ringing, Offhook)..
    Country Code: The ISO country code equivalent for the SIM provider's country code.
    Known neighbors: A list of neighbors the app has previously recorded. While the app is in the Main, Map, or Chart tabs 
    it is automatically recording the handoff sequence. It is this sequence which is displayed here.

    Site database: Indicates whether you are using Google, OpenCellID, or your own Local site database to 
    determine site locations. This last state is intended for engineers employed by the carriers since site location 
    data is not generally available to the public.
    Best Provider: The best provider for determining your location. This is usually network (coarse) or GPS (fine) 
    based on your environment. If the GPS is blocked (in a building for example) the app will default to the cell network  
    to determine your location. Network location is less accurate, but quicker than GPS. The provider is determined
    by the app.
    Mobile Latitude: Your cell's current latitude in DMS format.
    Mobile Longitude: Your cell's current longitude in DMS format.
    Mobile Heading: Returns the direction of travel in degrees East of true North.
    Mobile Altitude: Height above sea leave as determined by the GPS sensor.
    Site Bearing: Returns the direction to the site from the mobile in degrees East of true North.
    Speed: Returns the speed of the device over ground in meters/second.
    GPS Accuracy: Returns the accuracy of the fix in meters.
    Site Latitude: Latitude of the serving cell.
    Site Longitude: Longitude of the serving cell.
    Distance to Site: Distance of mobile to the serving cell. Note ~ If a site shows a distance of hundreds or thousands 
    of kilometers (or miles) away then the location service you are using (Google or OpenCellID) cannot identify 
    the site. Try setting the phone to use only the 2G network. Best accuracy is attained by using a custom site 
    location list uploaded to the app from the SD card. (see 'Select and load site records' under Database Maintenance).

    Data Activity: The current state of data traffic (IN, OUT, NONE, INOUT, DORMANT).
    Data State: The current data connection state (cellular).
    Mobile Rx bytes: The total number of bytes received through the mobile interface.
    Mobile Tx bytes: The total number of bytes transmitted through the mobile interface.
    Total Rx bytes: The total number of bytes received through all network interfaces.
    Total Tx bytes: The total number of bytes sent through all network interfaces.
    Mobile Rx packets: The total number of packets received through the mobile interface.
    Mobile Tx packets: The total number of packets transmitted through the mobile interface.
    Total Rx packets: The total number of packets received through all network interfaces.
    Total Tx packets: The total number of packets sent through all network interfaces.

    WiFi Enabled: Returns the WiFi state of the device
    SSID: Returns the service set identifier (SSID) of the current 802.11 network.
    BSSID: The basic service set identifier (BSSID) of the current access point.
    MAC: The phones MAC address.
    Supplicant state: Return the detailed state of the supplicant's negotiation with an access point
    RSSI: Returns the received signal strength indicator of the current 802.11 network.
    Link Speed: Link speed in Mbps
    Net ID: Each configured network has a unique small integer ID, used to identify the network when 
    performing operations on the supplicant. This method returns the ID for the currently connected network.
    WiFi Networks Found: WiFi access points within range of device.

    Map Tab
    The Map tab shows a map centered on your location, any cell sites the device is now or has been attached to, and a 
    trail of color coded signal strength data points. As you travel, the serving cell's coverage will be described. The Map 
    tab shows a map centered on your location, and any cell sites the device is now or has been attached to. A light blue 
    transparent wedge describing the coverage zone will expand and grow as long as the user is attached to that cell. Also, 
    if WiFi has been enabled, the strongest WiFi hotspot will be shown below the user's location.

    Stats such as signal strength, measured horizontal beamwidth, heading, CGI, site bearing, and distance are displayed at the 

    Sites can be editted by long pressing the map. A dialog will appear and display options based on whether you press 
    an empty space or a site icon. The user will have the option to attach/detach cells to or from sites and relocate sites 
    (See 'Site Survey' for more details).

    Note: there is a menu option (Menu -> More -> Erase cell coverage) unique to the Live Tab. If selected this will 
    temporarily erase the coverage zones generated by the app. This is useful if redefining site locations and old 
    coverage areas no longer apply (the feature is still being worked on).

    Chart Tab
    RF and WiFi signal strength data over time is displayed in this screen. Cell and technology handoffs are are indicated 
    by a vertical line extending from the handoff point to the label. The wifi signal strength line will show the strongest 
    hotspot signal received with that hotspot's name marking the moment of change over.

    The legend is displayed in the upper left and shows the cell ID, technology, RF and wifi signal strengths. The timespan 
    (along the x-axis) of the chart is adjustable from 30 seconds to 5 minutes with 60 seconds being the default. You can 
    also take a snapshot of the chart at any time and share it with someone.

    Rec Tab
    Recorded data is displayed on a map showing your position, a color coded signal level, and the serving site 
    location (if "Show serving cell" display is selected in preferences). The pane at the bottom of the screen shows Signal 
    Strength, the time stamp of the record, the bearing of the site (in degrees east of north), the distance to the site in 
    kilometers or miles, the LAC, Cell ID, and technology.

    The Seekbar lets you move to any point in the collected data.

    Got to Menu > Stats to bring up the basic statistics. These stats include distance traveled over the 
    course of the recording, average handover distance, as well as the handover sequence. The handover sequence 
    shows the handover cell ID, the distance from that cell, and the timestamp at the point of handover, and signal 

    Go to Menu and 'Reply Speed' to set the speed of your recording.

    To save this data to the SD card press the menu button and click Save. The default file name will be 
    export_yyMMDDHHmmss.txt -- where 'yyMMDDHHmmss' is the time stamp of the moment the file was saved 
    -- and saved to the 'rfsignaldata' directory.

    DB Tab
    The DB tab lets the user interact with data files, import market data, save recorded data, delete files, etc.

    Import Site Records
    Let's the user import CSV formatted site data. This data will be added to any data already in the database. 
    This is where you load the data containing the site location info. This data must be in a CSV file located 
    in the 'rfsignaldata' directory of the SD card. Data must be in the order: MCC,MNC,LAC,CI,LATITUDE,LONGITUDE. 
    Leave no spaces. LAT/LON must be in decimal format (example: 47.512017,-122.608083).

    Export Site Records
    Let's the user export CSV formatted site data. This is useful for saving edited site location data. 

    List cell site records
    List all the sites in the database. Selecting a site will display the site on the map and any surrounding sites up 
    to a distance selected by the user.

    Delete site records
    Remove all site records from the database. If you want to clean out the data and start over, or load a different set 
    this is what you use.

    Import RF RSSI data
    Reload previously saved signal strength data. This data will be added to any data already in the database. 
    Data that you export (in CSV format) can be reloaded, this is were you do that. The file must have a header with 
    data in the order: _id,latitude,longitude,rssi,logdate,mcc,mnc,lac,cellid,site_lat,site_lng,tech. Where _id is 
    the record index (an integer), latitude and longitude is the user position and multiplied by 1,000,000 
    (example 47576047,-122168140). This is necessary to eliminate rounding if a float or double is used. These numbers 
    are converted after import. 'logdate' can be in any standard format but try to have it to the second. site_lat
    and site_lng are the site latitude and longitude of course. These numbers must also be multiplied by 1,000,000. 
    tech is the technology used and can be any string value.

    Long pressing the file name launches an option screen to Rename or Delete the files.

    Delete RF RSSI data
    Deletes all signal strength records from the database.

    Save RF RSSI data
    Save recorded data to XML, Excel CSV, or Google KML file. Saves recorded signal strength data to a file under the 'rfsignaldata' directory.

    Import WiFi data
    Load recorded wifi data.

    Delete WiFi data
    Delete any recorded wifi data from the database.

    Save WiFi data
    Save collected wifi data. Shows the total number of records.

    List WiFi Hotspots
    List all WiFi hotspots recorded in the database. Hotspots can be filtered by SSID or by security settings. Selecting an item
    will map the strongest received signal for that hotspot.

    Known Neighbor List
    This is NOT a list of neighbor cells from the base station, but the handoffs recorded by the device.

    Export Neighbor List
    Export the complete list of neighbors collected.

    Clear Neighbor List
    Delete the current list of neighbors in the neighbors database.

    Review test notes
    Review and edit the notes created during RF data collection.

    Playback recorded data
    Play back recorded data currently in memory. Loading new data into memory requires restarting the app 
    before playing back.

    Share your data!
    Send a site, signal strength, or wifi data file as an email attachment.

    Big Picture
    Show a map of all of the recorded RF data points.

    Clear all data points
    Delete all RF and WiFi data points from the database.

    Toggle 2G/3G
    This button will open the Settings activity allowing the user to set the phone to use only 
    the 2G network. This can save battery life and provide for more accurate cell location (using the Google 
    or OpenCellID location services) since the 2G GSM network is older and more established.

    Vibrate alert: 
    The phone will vibrate every time it switches to a new serving cell.

    Sound alert: 
    The phone will play the default notification sound every time it switches to a new serving cell.

    Show serving cell:
    The application will attempt to identify the serving cell's location. If selected, the serving cell will appear as 
    a blue dot with a black line connecting it to your current position.

    Sector coverage:
    While in Live or Recorded Data a transparent blue sector coverage will be drawn around the point of furthest 
    coverage. The sector coverage will expand if the phone holds on to a given site beyond the previous max 
    coverage point. Please note that this is a rough coverage estimate for a site. Coverage in a given direction is 
    determined by buildings, hills, foliage, and other clutter between the cell and mobile unit.

    Show Signal Strength:
    This selection will leave a trail of signal strength dot markers as you travel. The marker color will indicate 
    your signal strength at that point. Solid red (no signal) is about -113 dBm, yellow (moderate signal) about 
    -84 dBm, and green (strong signal) about -59 dBm. Leaving this box unchecked will display a single dot (with 
    color coding based on RSSI as well), but no trail will be left as you move.

    Unit of measure:
    Choose to display distances using the english or metric (default) mode.

    RSSI dot size:
    Set the size of the rssi signal strength dot on the map.

    Site database:
    Set the site database used to determine your serving cell location. Note ~ Google's location services (the default) 
    is increasingly becoming hit-or-miss, and OpenCellID.org still has a relatively small database of cell sites. If either 
    of these options are not working for you, and you have access to site location data, you can place that data in a 
    CSV file and load those records into the application.

    To load site data:

    1. Using your USB cable, plug the phone into your computer.

    2. Slide down the notification bar at the top of the screen.

    3. Select 'USB connected' under Ongoing events and mount the card. The phone will appear as a new drive 
    on your computer.

    4. From your computer, copy the CSV file to the "rfsignaldata" directory on the  SD card. Please note, earlier 
    versions of the app had users place their data in the root directory. Most of these files were automatically 
    moved after the v1.2.4 upgrade, but if you have any data still in the root you will need to move it.

    5. Unmount the phone and load the data into memory by selecting Menu -> Records in the app. In the 
    Records screen select the items 'Load site records (csv)' or 'Load RSS data (csv)'.

    NOTE: The site data must be saved in a CSV file where the first line is a header. The data must be in the 
    order: MCC, MNC, LAC, CELLID, LATITUDE, LONGITUDE. Latitude and longitude are in decimal format 
    (example: 47.512017,-122.608083) Be aware that 6,000 records can take about 3-minutes to load and 
    take up about 500kb of memory. Once loaded you should not need to reload except to correct data or 
    add another market.

    Map mode: 
    Choose either the standard Map view or Satellite overlay map (just like in Google Maps).

    GPS refresh: 
    This is the time interval the phone\'s GPS will wait before updating. Try to balance this with the update 
    distance to minimize power consumption. NOTE ~ regardless of the refresh-time setting, the update will 
    only occur if you move during that time period (see GPS update distance).

    GPS update: 
    This is the minimum distance you must travel before the GPS will send an update. Try to balance this with 
    the update time to minimize power consumption. If you are taking measurements while in a car you may 
    want to use the longer update interval or else the GPS may run continuously. Remember, if you do not 
    move, the GPS will not update even after the minimum refresh time has elapsed.

    GPS power: 
    This sets the power consumption of the GPS while in use. There is not a lot of documentation on what these 
    levels mean beyond the obvious. 
    I leave it to the user to make that choice.

    Center map on user: 
    The map will scroll to the users location. As you travel the map will constantly shift to display that user local. 
    If using the site survey feature you may want to uncheck this feature since it will make selecting a site icon 
    easier (the screen won\'t move under your finger).

    Export file format: 
    Data collected through 'Log data points' or while in 'Record' mode can be saved to either an XML or CSV file 
    format. Files are saved to the root directory of the SD card under the name 'export_yyMMDDHHmmss.xml' 
    or 'export_yyMMDDHHmmss.csv', where 'yyMMDDHHmmss' is the year, month, day, hour, minute, and 
    second the file was saved. You can copy to your computer by following these steps:

    1. Using your USB cable, plug the phone into your computer.

    2. Slide down the notification bar at the top of the screen.

    3. Select 'USB connected' under Ongoing events and mount the card.

    4. At this point you should see the phone's SD card appear as a new drive on your computer. 
    Open it and you will see your exported file. Copy to your computer.

    5. Make sure you unmount the card before removing USB cable.

    Current battery level:
    When the battery drops below the indicated level the app will shut down. You will 
    not be able to restart it until it is recharged above this level.

    Map Neighbors:
    If selected, during Live Data display neighbor sites are shown while the mobile is reselecting. Neighbor sites 
    are shown as gray squares with gray lines running from the mobile's position to the site. This preference works 
    best while the phone is in 2G mode. NOTE ~ If you see a neighbor Cell ID of 65535 then this is a non-existent 
    or unknown cell and it will not be displayed.

    Error messages:
    Display minor error messages. For administrative use primarily.

    Sticky cells (experimental):
    Forces the phoneStateListener to reset if the mobile travels over 2.0km and the RSSI increases by 6dBm without 
    ever handing over to a new cell.

    Fix the device orientation to portrait or landscape. Any change will take place after the app is restarted. This is 
    because, in Android, reorienting the screen causes the activity (current screen) to restart and was problematic 
    for the app.

    WiFi Network Scan:
    Display nearby WiFi access points along with signal strength. This is for information purposes only at this point.

    Eliminate Outliers:
    Occasionally during recorded data playback, some data points will appear well outside of the main track of recorded points. 
    These outliers can spoil the coverage zones being drawn. By checking this option, these outlying data points will not appear 
    during playback. This app determines outliers by measuring the mobile speed. If the speed between two points exceeds 100mph, 
    then the new data point is flagged as an outlyer and skipped.

    Voice notifications:
    Using Androids built in Text-To-Speech (TTS) capability, the RFST can now speak to you, eliminating the need to watch the screen 
    for changes. Check the box to activate and signal strength changes, handoffs, technology changes, and no services announcements 
    can be heard over the phones speaker. You may be prompted for a one time install of the speech engine.

    Recorded Data
    Recorded data is displayed on a map showing your recorded position, the serving site location (if site display is selected 
    in preferences), key data points, and a graph of signal over time. The pane at the bottom of the screen shows RSSI, the 
    time stamp of the record, the bearing of the site (degrees east of north), the distance to the site in kilometers, and the 
    LAC and Cell ID.

    The Seekbar lets you move forward or backward through the data.

    Click Stats from the Menu options screen to bring up the basic statistics. These stats include distance traveled over the 
    course of the recording, average, minimum and maximum handover distance, as well as the handover sequence. The handover 
    sequence shows the handover cell ID, the distance from that cell, and the timestamp at the point of handover.

    Click Filter to see technology, handoff points, data states and signal strength.

    To save this data to the SD card press the menu button and click Save. The file will be named rfsignalstats_yyMMDDHHmmss.txt, 
    where 'yyMMDDHHmmss' is the time stamp of the moment the file was saved.

    Menu Options
    Menu options vary depending on which screen you are on, but these are the options you will encounter:

    This will take you to the preferences screen.

    Save Rec: 
    This will export the RF data (not Wifi, that has to be saved through the DB tab) collected to the SD card in the 
    format you have selected in the preferences screen.

    Mapshot will take a screen shot of the Map (or whatever is on the screen when presented this option). The image 
    will be saved to the rfsignaldata directory on the device, and a popup window will appear giving you the chance 
    to share the image on Twitter, Facebook, by email, or whatever app you can share on the device.

    RF Calculator
    The calculator tab gives the users a fast and dirty EIRP/ERP and free space loss calculator. No numbers need be 
    entered. Simply slide the given bars for gain, loss, distance, etc., and the numbers are calculated immediately. 
    I originally put this in because I was doing a lot of power density analysis and it seemed related. I leave it 
    to the users to decide on its usefulness.

    Big Picture: 
    Recorded drive test data is displayed in its entirety showing Signal Strength, serving cells and sector 
    coverage. This is a static display of data and you must have recorded data in the database to show anything.

    Let's you share your signal strength readings and location with Twitter, Facebook, email, or anything 
    your device is connected to. For the truely anal amoung you.

    One Cell Tracking: 
    With 'One Cell Tracking' users can track the coverage of a single cell site. With single cell tracking RSSI turns red 
    if the serving cell is not the tracked cell. Standard colors show otherwise.

    Go to Menu > More > One Cell Tracking, and enter the Cell ID of the cell you wish to track and press the 
    'Start' button. Pressing 'Stop' cancels single cell tracking.

    Map Mode: 
    Set map to satellite or standard map mode (default).

    Screen Orientation: 
    Fix the screen orientation to portrait or landscape. You may have to restart the app before this takes effect.

    Display nearby sites
    Select this item to display sites within 2km of your position. This works best with your own Local data.

    Erase cell coverage
    Erase coverage zones painted on the map (this feature is a work in progress).

    Site Survey
    One of the great deficiencies of the app is that, unless you are an engineer for a cellular carrier, you probably do not 
    have access to a complete and accurate site location database. Therefore, I have added a feature which will allow 
    a user to insert a site on the map, and in turn the site database, by simply pressing a spot on the map. Not perfect, but 
    it does minimize the short comings of the open source location services on the web. Instructions are below.

    Long pressing (2 seconds or more) an empty spot on the map will launch a dialog which will give the user the 
    option of inserting the current serving cell into that spot on the map. This will allow users to define site locations 
    even if they do not have access to specific site location data.

    Long pressing a site icon on the map will launch a dialog giving the user these options:

    Move XXXXX to selected site - This will attach the current serving cell to the site 
    represented by the selected icon. Often, Google will show two sites as separated by a few dozen meters when, in fact, 
    they are sectors on the same site. This option lets you bundle these cells together on the one site.

    Move selected site to cell XXXXX - This will move all the sectors on the selected site 
    to the same site as the serving cell. Like the first option but in reverse.

    Remove selected site and all attached cells
    - This removes (temporarily) all the sectors 
    on the selected site from the database. If you are using the Google or OpenCellID location services then the cell 
    will appear in its original position (If you handove to that cell, the app will first search its database for the cell 
    and then go online to find it. If it is successful it will store that cell location back in its database). If using 
    Local location then the site is deleted from the database, but can be reloaded from the original data file.

    Remove XXXXX from selected site - This option removes the specific cell from the selected 
    site. All other cells remain unchanged. This is used if you attach a cell to the wrong site.

    The app may take several seconds to show any update made by the user in this way.

    Note: A black line will always extend from the user location to the serving cell.

    Version History

    v2.5.9  Since Android's neighbor cell information is problematic, the app now creates its own database of cell handoff data as you travel. 
    This data is collected automatically in the background. As you travel, the app will note the current and previous cells when a handoff occures, and 
    save that data to a database for later retrieval.

    v2.5.8  More bug fixes caused by use of the cellname feature.

    v2.5.7  Fixed crash on startup while in Map or Chart tabs.

    v2.5.6  An optional cell name may be included in the site location data loaded into the database. Simply add the cell name after the longitude and change the header to: mcc, mnc, lac, ci, latitude, longitude, cellname. Again, this is optional, you can continue to use your current site files (See About the App or visit the app's website for instructions). Trying new neighbor display algorithm. Long press a cell in the site list (DB tab) to get directions to that site.

    v2.5.5  Corrected the \'View not attached to window manager' error. This error caused the app to crash if the orientation changed while a progress dialog was displayed. Fixed the text box sizing problem on the SlidingDrawer on the Map tab.

    v2.5.4  Found a bug in Chart with caused it to run at double normal speed. Bug fixes.

    v2.5.3  In order to better understand crashes, exceptions, and force closes, RF Signal Tracker now uses Google Analytics 
    to collect anonymous usage statistics for the app. These counters will help determine exactly how the app is used and 
    were problems may exist. No identifying information about the device or user is collected or sent. To Opt-Out of the collection 
    go to Preferences and check the box next to Google Analytics Opt-Out.

    v2.5.2  Increased the minimum OS level needed for the app from Android 2.1.x to Android 2.2.x. Traffic stats now included 
    in Main tab under Traffic group. Transmitted and Received traffic bytes now included in recorded data. Testing a new method 
    for pulling LTE signal strength.

    v2.5.1  Changed the application\'s sleep settings. The application will now remain on at full brightness all the time. In the 
    chart, open hotspot names will be bracketted by asterisks. Example: *NAME*. Removed timescaling for the chart, but 
    expanded and made the chart scrollable.

    v2.5.0  App now includes the ability to record data at specific timed intervals. Warning: this can produce very large files, 
    use with caution! Go to Preferences > Recording interval to set. Signal strength can now be viewed over time in a XY line 
    chart. RF signal strength will appear in green. The magenta curve indicates the strongest wifi signal in range. The time 
    scale for the chart is adjustable.

    v2.4.6  Update of the Spanish localization text. Thanks Augusto! Moved the data panel, at the bottom of the Map screen, 
    to a sliding drawer. Fixed site selection bug. Added function to take snapshot of maps, save to sd card and share.

    v2.4.5  Bug fix for activity that lists files on the SD card. Added new drive mode screens.

    v2.4.4  Darkened the sector coverage color. Minor adjustments to the voice notification timing. The map will not update 
    below -102 dBm. This will improve performance when viewing the map by not demanding map tile updates when signal 
    strength is at its worse. Fixed bug calling the last Tab used.

    v2.4.3  Big Picture display can now be filtered for handoffs, technology, and data activity as well as rssi. This allows the 
    user view these changes graphically. Fixed a screen orientation bug that causes a force close if device was not oriented 
    correctly. To turn off coverage zones in Google Earth KML file exports, uncheck 'Sector coverage' in Preferences.

    v2.4.2  Text To Speech (TTS) incorporated into 'Main' and 'Map' tabs. Voice notification of handoffs, technology change, 
    battery level, etc. (see Preferences to activate and select language). Record notes can now be added while collecting 
    data. Add observations, take note of dropped calls, service outages, etc. New \'Drive Mode\' view added to Map and Main 
    tabs. Press the 'DM' button and show signal strength, cell id, and technology in large font, good for drive tests where 
    viewing details is difficult.

    v2.4.1  Corrected bug in KML file export that caused exports to fail if the recorded signal was -200 dBm. 
    Outlying data points can now be eliminated from playback (see preferences).

    v2.4.0  Moved calculator from the tab to the Menu group and switched the database activity to the Calc tab. RFST 
    now includes a war driving feature which lets users collect, search and map WiFi data. Changed 'Device Type' to 
    'IMEI/ESN'. Changed nearby site display (Menu > Display nearby sites) to show sites within 2km of user location rather 
    than serving cell. Moved the record button to address a bug caused by having it in the menu. Transparency of the data 
    fields on Map screen is adjustable (Menu > More > Data field trancparency).

    v2.3.4  Signal strength, technology, data activity, and data points recorded now in top status bar of Main tab. 
    Recorded data now includes device manufacturer and model. Any RSSI data will be saved as 'v2_3_3_rssi_database.csv' 
    in the rfsignaldata folder on the sd card. The Main screen now includes the ISO country code equivalent for the SIM 
    provider's country code. Created a cleaner display of data fields on maps.

    v2.3.3  Corrected bug in the recorded data screen. Corrected signal strength reading when no service detected. 
    Background recording will start automatically if user exits while recording. Added median RSSI to statistics 
    calculated in recorded data stats. Network type now includes iDen, EVDO B, LTE, eHRPD, and HSPA+. Data files 
    can be shared as email attachments.

    v2.3.2  Application now localized for French, Spanish, Portuguese, and German! Please let me know of any odd 
    translations (I used Google Translate...that's my excuse).

    v2.3.1  Users can populate known cells within 2km of serving cell (Menu -> Load nearby sites). 
    Cell site location optimization searches for sequential cell IDs within a given distance of each other and aligns 
    their LAT/LONs. See (Menu -> List cell site records -> Menu -> Optimize site locations) in the Live tab. Cell IDs 
    no longer overlap. Serving cell ID shown in red. Fixed display bug when viewing Big Picture from recorded data 
    playback. Fixed list focus in preferences screen.

    v2.3.0  Clarified and improved cell site redefinition including messages returned - serving cell can be attached to 
    a selected site or vise versa and sites can be removed. Google and OpenCellID site locations are now saved to the 
    app database for faster retrieval and data modification. Site list can be exported. Individual sites in the list 
    can be mapped along with neighbor sites within a specified radius. Included list of WiFi access points detected 
    along with signal strength in main screen. Updated the Help and About screens for the app. Fixed vibration and sound 

    v2.2.10  Corrected error caused by user performing an Add/Remove when no site exist in database. Fixed 
    screen orientation bug. Added Free Space Loss to calculator. Mobile heading now determined by device compass. 
    Compass overlayed on Live data map.

    v2.2.9  Improved method for importing data (site or signal strength measurements) into the database. If the 
    GPS provider has not been available for more than 45 seconds the GPS is re-initialized. Can now import site 
    data from Celltrack 3.0. Users can define or remove site locations by long pressing the map (at least 2 sec) 
    and following dialog commands. Long pressing an icon will launch a dialog asking if you want to remove that 
    site. This will let the user define site locations if all other meathods fail.

    v2.2.8  Corrected a bug in identifying the CDMA network operator. Improved initial Site location determination 
    allowing automatic cellular network or GPS location acquisition (you\'ll find yourself on the map quicker). 
    Removed GPS and network selection from preferences. Reduced max gain and loss in ERP calculator to 30dB. 
    Fixed minor bug in site bearing (was showing bearings from 180° to 360° as -180° to 0°).

    v2.2.7  Updated the layout of the Main screen -- cleaner, easier to read. Can now share basic stats 
    with the world! Post current signal strength, carrier and location to Twitter, Facebook, email or whatever 
    communications app your device has. Better GPS initialization. Serving cell neighbor list is more persistent.

    v2.2.6  Tabbed screens introduced. Had to rework the relation between the activities involved. 
    Added an informal ERP calculator. Use a slide bar to do a fast ERP/EIRP calculation using power, gain and line loss. 
    Better GPS and phoneStateListener shut down -- no more hanging GPS!. Fast scroll bar added to file list screen. 

    v2.2.5  User can now manually set screen orientation (Menu > More > Screen orientation). Adjusted 
    sticky cell reset routine (still experimental). Found bug in the sector coverage paint routine 
    (mixup between degrees and radians).  Several little bug fixes.

    v2.2.4  Screen orientation fixed to portrait. This is done to eliminate app restarts which happen 
    whenever the orientation changes. Added switch in preferences to turn off sticky cell reset -- this 
    feature is for testing only. Playback speed of recorded data adjustable by going to the menu button.

    v2.2.3   Added condition to prevent display of bogus site data such as Lat=0.0 and Lon=0.0 or a 
    site more than 50 km from mobile. Improved coverage radius calculation. Removed the sector 
    coverage offset option under preferences since this is no longer needed. Also added a feature to 
    break the connection from a "sticky" cell connection. If the app holes a connection for more than 
    2.5km from the initial handover point and the power has increased by 6dBm then the phoneStateListener 
    is disconnected and restarted.

    v2.2.2   After an extended re-introduction to trigonometry I was able to develop a slightly better 
    bearing method in my code which, in turn, improves the sector coverage.

    v2.2.1   Included ability to add a sector orientation offset (See Preferences). This will patch the 
    bug reported showing sector azimuth being 90 degrees off while I investigate a solution. The default 
    offset is 0 deg.

    v2.2.0   Changed coverage bubbles to sector bubbles. Each cell\'s coverage is painted as you travel 
    showing sector orientation and distance. Altered the database to save data state and data activity. 
    Modified the Recorded Data screen with a slightly updated interface using a SeekBar and Stop/Play 
    button. Data plays continuously on a loop. Fixed map mode bug and other fun things.

    v2.1.11  Fixed and tested the map display update (was not properly refreshing while in Live Data). 
    Added 'One Cell Tracking' that lets user track coverage of a single cell site. With single cell tracking 
    RSSI turns red if the serving cell is not the tracked cell.

    v2.1.10  Fixed map update bug.

    v2.1.9   Added option to select a location provider. User can choose to have their location provided 
    GPS or the cellular network. Worked on several other tiny bugs. I think the Google people 
    tightened up SQLite because doing things like not closing Cursors is a big no-no now.

    v2.1.8   This update effects only Android 2.2 (Froyo) and higher users. App can now be moved to the sd card.

    v2.1.7   Fixed error message checkbox bug. If the app cannot find a site\'s location it zeros out the 
    Since 0.0N, 0.0W is a point off east Africa, this was causing much confusion with users, 
    so I made a small 
    fix to the display of site location info. Corrected some typos.

    v2.1.6   Added check verify that SD card is present.

    v2.1.5   Added option to export data to a Keyhole Markup Language (KML) file format which can be  
    imported into Google Earth. Users can now edit output filenames. Moved the Live Data and Recorded 
    Data buttons on the main screen to the bottom of the screen for easier access.

    v2.1.4   If using Local site location data and the site is not in the user database of sites, 
    then app will 
    default to the Google location service. Fixed Force Close bug caused by a wake lock being 
    released incorrectly.

    v2.1.3   Added neighbor site display to Live Data map. User toggles display in preferences. This 
    works best in 2G.

    v2.1.2   Added check for international roaming. This checks if the MCC of the Sim operator equals the 
    MCC Network operator. A non-match would mean the phone is roaming internationally. For now, this 
    indicator has only been added to the main screen. Roaming state is now one of the parameters saved to 
    the database.

    v2.1.1   Application will no longer shut down if it is below the users minimum battery level setting, 
    but on AC power. Also fixed a bug in the minimum battery level fail-safe routine. Included battery 
    level in phone stats on main screen.

    v2.1.0   Remodeled preferences screen. Created a service to allow for data collection in the background. 
    This new service includes a minimum power level fail-safe to keep from depleting the battery.

    v2.0.1   Fixed the data import to accept data collected with the Donut version of this app. Put in a couple 
    safety dialogs when deleting site or rssi data. Using NetworkOperator rather than subscriber id to identify the MCC.

    v2.0.0   This is the first version built for the Android Eclair OS. It incorporates the new onSignalStrengthsChanged 
    method in Android v2.1 which includes Bit Error 
    Rate (BER) and Ec/Io. Renamed the app to reflect this change 
    and called it RF Signal Tracker (Eclair). Pre 2.x 
    versions will be known as RF Signal Tracker (Donut). Corrected 
    text sizing issue seen between myTouch and Nexus One.  
    Added user adjustable rssi signal strength dot sizes. 
    Added complete drive test display feature.

    v1.2.9   Incorporating the new onSignalStrengthsChanged method for Android v2.1 which includes Bit Error 
    Rate (BER) and Ec/Io. Corrected text sizing issue seen between myTouch and Nexus One. Added user adjustable 
    rssi signal strength dot sizes. This version does not support CDMA and is intended for the Android Donut OS.

    v1.2.8   Button formatting fix for Droid phones. Sim SN displays 'n/a' for non-GSM phones.

    v1.2.7   Bug in the file delete and rename method fixed. Corrected wording in Help section.

    v1.2.6   Bumped the minimum Android version required to v1.6 (Donut) after discovering the cdma libraries 
    I was pulling do not exist in v1.5, and was crashing the app for those users still on Donut.

    v1.2.5   Added more graceful cdma error handling.

    v1.2.4   Improved record count query to eliminate duplicates; Fixed bug in menu Record button. 
    Showing cellID on map. Moved data files to new subdirectory. Users can delete or rename data files from app by 
    'Long Pressing' a listed file. Adding initial parameters for CDMA phones (experimental).

    v1.2.3   WAKE_LOCK added to prevent app from sleeping during use. Tweaked the Google location service and discovered 
    better results by using the 2G network only.

    v1.2.2   Re-ordered selections in the preferences screen and added english-metric distance display in pref as well. 
    App will not exit if RF signal not found, it just won\'t be able to ID cell towers.

    v1.2.1   User can select map centering on current position or a point between the users position 
    and the site; File import verification; MNC fix for T-Mobile CGIs; Coverage bubble 
    around cell sites (see preferences screen); Basic statistics through the menu on the Recorded Data screen.

    v1.2.0   Recorded signal-level data playback.

    v1.1.1   Graceful exit if user has no wireless or GPS service.

    v1.1.0   Users can load custom site locations from their SD cards for more accurate tracking.

    v1.0.3   Converted displayed CellID from Hex format to decimal format; User can choose location service 
    used to determine the serving cell location; modified data storage to take complete LAT/LON.

    v1.0.2   Included network technology in database export. Filtering out erroneous serving site data.

    v1.0.1   Fixed database delete from menu. Adjusted default preferences.

    v1.0.0   Initial build