title: Check mobile data connection/signal before doing HTTP request
body: <p>In my Android application I first get the users location using either GPS, the GSM network or a text value that is manually input via a Settings screen. </p>
  
  <p>At first I used the Geocoder class to get the users locale with latitude and longitude provided by GPS or GSM but it seemed unreliable, now I used Google's web API to get the locale by making a HTTP request and parsing the XML document returned. This is using the following URL:</p>
  
  <blockquote>
    <p><a href="http://maps.googleapis.com/maps/api/geocode/xmllatlng=blahblahlat,blahblahlong&amp;sensor=true" rel="nofollow">http://maps.googleapis.com/maps/api/geocode/xmllatlng=blahblahlat,blahblahlong&amp;sensor=true</a></p>
  </blockquote>
  
  <p>After getting the users locale I then send another HTTP request to free.worldweatheronline.com's weather API and parse the XML returned. With a stable internet connection the application runs fine, however my house has a rubbish signal and even worse mobile data connection. </p>
  
  <p>I am aware there is a simple method to check if the device has a mobile data connection, however what I want to know is whether there is a way of measuring the signal strength as the problem arises when there is a connection, but it is too bad to successfully run. For example, if there is a way to get mobile data signal strength which returns a value from 0 (no signal) to 100 (full signal), I can then only carry out the location and weather retrieval if signal strength is above a certain amount. </p>
  
  <p>Would it be best to just surround the location and weather retrieval code with a try/catch so it doesn't cause a runtime exception, allowing it to just fail gracefully then update when a better signal is acquired? Any ideas on how to accomplish this, or any other suggestions to make my app more friendly for users with bad signal? </p>
  
  <p>Thanks in advance!</p>