title: location problem
body: <p>Hi to all im new to android and i have a small problem and i would really appreciate if someone can help me</p>
  
  <p>first im trying to show all available location providers and its not working and 2nd when ever i run the it i don't get any location information from the best available provider (i have my wifi and network providers on)
  thanks in advance</p>
  
  <pre><code>package com.paad.whereami;
  
  import java.io.IOException;
  import java.util.List;
  import java.util.Locale;
  import android.app.Activity;
  import android.content.Context;
  import android.location.Address;
  import android.location.Criteria;
  import android.location.Geocoder;
  import android.location.Location;
  import android.location.LocationListener;
  import android.location.LocationManager;
  import android.os.Bundle;
  import android.widget.TextView;
  
  public class WhereAmI extends Activity {
  
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
  
      LocationManager locationManager;
      String context = Context.LOCATION_SERVICE;
      locationManager = (LocationManager)getSystemService(context);
      boolean enabledOnly = true;
      List&lt;String&gt; providers = locationManager.getProviders(enabledOnly);
  
      Criteria criteria = new Criteria();
      criteria.setAccuracy(Criteria.ACCURACY_FINE);
      criteria.setAltitudeRequired(false);
      criteria.setBearingRequired(false);
      criteria.setCostAllowed(true);
      criteria.setPowerRequirement(Criteria.POWER_LOW);
      criteria.setSpeedRequired(true);
      String provider = locationManager.getBestProvider(criteria, true);   
  
        Location location = locationManager.getLastKnownLocation(provider);
      updateWithNewLocation(location);
  
      locationManager.requestLocationUpdates(provider, 2000, 1,
                                             locationListener);
    }
  
  
    private final LocationListener locationListener = new LocationListener() {
      public void onLocationChanged(Location location) {
        updateWithNewLocation(location);
      }
  
      public void onProviderDisabled(String provider){
        updateWithNewLocation(null);
      }
  
  
  
   public void onProviderEnabled(String provider){ }
      public void onStatusChanged(String provider, int status,
                                  Bundle extras){ }
    };
  
    private void updateWithNewLocation(Location location) {
      String latLongString;
      TextView myLocationText;
      myLocationText = (TextView)findViewById(R.id.myLocationText);
  
      String addressString = "No address found";
  
      if (location != null) {
        double lat = location.getLatitude();
        double lng = location.getLongitude();
        latLongString = "Lat:" + lat + "\nLong:" + lng;
  
        double latitude = location.getLatitude();
        double longitude = location.getLongitude();
        Geocoder gc = new Geocoder(this, Locale.getDefault());
        try {
          List&lt;Address&gt; addresses = gc.getFromLocation(latitude, longitude, 1);
          StringBuilder sb = new StringBuilder();
          if (addresses.size() &gt; 0) {
            Address address = addresses.get(0);
  
            for (int i = 0; i &lt; address.getMaxAddressLineIndex(); i++)
              sb.append(address.getAddressLine(i)).append("\n");
  
              sb.append(address.getLocality()).append("\n");
              sb.append(address.getPostalCode()).append("\n");
              sb.append(address.getCountryName());
          }
          addressString = sb.toString();
        } catch (IOException e) {}
      } else {
        latLongString = "No location found";
      }
      myLocationText.setText("Your Current Position is:\n" +
                              latLongString + "\n" + addressString);
    }
  }
  </code></pre>