a localização atual é sempre nula

Estou tentando recuperar minha localização atual no botão, clique em uma caixa de edição usando GPS ou rede ... tentei todos os métodos possíveis que encontrei em tutoriais e postagens mais antigas ... mas minha localização é sempre nula. Não estou chegando onde estou errado. Estou testando em dispositivos reais com rede, mas sem internet / gprs ...

Este é o código que estou usando .. Tentei o mesmo com o GPS_PROVIDER também .. por favor me ajude ..

     protected void showCurrentLocation() 
   {
     geocoder = new Geocoder(this); 
     locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
     locationManager.requestLocationUpdates(
                LocationManager.NETWORK_PROVIDER, 
                MINIMUM_TIME_BETWEEN_UPDATES, 
                MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,
                new MyLocationListener()
        );

   Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
   System.out.println("loc.."+location);
   if (location != null) 
   {
   String message = String.format("Location \n Longitude: %1$s \n Latitude: %2$s",
                location.getLongitude(), location.getLatitude());
       Toast.makeText(ShowActivity.this, message,
               Toast.LENGTH_LONG).show();
  //acTextView.setText(message);
   try {
          List<Address> addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 10); //<10>
          for (Address address : addresses) {
              System.out.println("my location .."+address.getAddressLine(0));
            acTextView.setText(address.getAddressLine(0));
          }



        } catch (IOException e) {
          Log.e("LocateMe", "Could not get Geocoder data", e);
        }
    }
    else
    {
    AlertDialog.Builder alertbox1 = new AlertDialog.Builder(this);
    alertbox1.setMessage("No GPS or network ..Signal please fill the location manually!");
    alertbox1.setNeutralButton("Ok", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface arg0, int arg1) 
    {}});
    alertbox1.show();
    }

}   

Estou apenas editando a pergunta em vez de fazer a nova ... porque meu problema ainda está relacionado ao mesmo ... não mudei nada no código e isso está funcionando perfeitamente agora ... problema é quando eu uso o GPS_PROVIDER, ele retorna o endereço exato, juntamente com o valor da longitude e latitude .. mas quando eu uso o NETWORK_PROVIDER, ele retorna apenas o valor da longitude e latitude sem endereço ... eu quero recuperar o endereço completo usando NETWORK_PROVIDER porque o GPS não funciona em ambientes internos ... Como posso fazer isso?

Obrigado...!

questionAnswers(6)

yourAnswerToTheQuestion