title: android get zipcode of India from latitude and longitude
body: <p>I need to get the zip code from a latitude and longitude, Im able to get the address with street names but cannot get the zip code. String <strong>pCode</strong> is returning <strong>Null</strong> in the below code.
  Below is the code I'm using:</p>
  
  <pre><code>    import java.io.IOException;
  import java.util.List;
  import java.util.Locale;
  
  import android.app.Activity;
  import android.app.AlertDialog;
  import android.content.ContentResolver;
  import android.content.Context;
  import android.content.DialogInterface;
  import android.content.Intent;
  import android.content.pm.ActivityInfo;
  import android.location.Address;
  import android.location.Geocoder;
  import android.location.Location;
  import android.location.LocationListener;
  import android.location.LocationManager;
  import android.os.Bundle;
  import android.provider.Settings;
  import android.util.Log;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.Button;
  import android.widget.EditText;
  import android.widget.ProgressBar;
  import android.widget.Toast;
  
  public class GetCurrentLocation extends Activity implements OnClickListener {
  
      private LocationManager locationMangaer=null;
      private LocationListener locationListener=null; 
  
      private Button btnGetLocation = null;
      private EditText editLocation = null;   
      private ProgressBar pb =null;
  
      private static final String TAG = "Debug";
      private Boolean flag = false;
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
  
          //if you want to lock screen for always Portrait mode  
          setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  
          pb = (ProgressBar) findViewById(R.id.progressBar1);
          pb.setVisibility(View.INVISIBLE);
  
          editLocation = (EditText) findViewById(R.id.editTextLocation);  
  
          btnGetLocation = (Button) findViewById(R.id.btnLocation);
          btnGetLocation.setOnClickListener(this);
  
          locationMangaer = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
  
      }
  
      @Override
      public void onClick(View v) {
          flag = displayGpsStatus();
          if (flag) {
  
              Log.v(TAG, "onClick");      
  
              editLocation.setText("Please!! move your device to see the changes in coordinates."+"\nWait..");
  
              pb.setVisibility(View.VISIBLE);
              locationListener = new MyLocationListener();
  
              locationMangaer.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10,
                      locationListener);
  
              } else {
              alertbox("Gps Status!!", "Your GPS is: OFF");
          }
  
      }
  
      /*----------Method to Check GPS is enable or disable ------------- */
      private Boolean displayGpsStatus() {
          ContentResolver contentResolver = getBaseContext().getContentResolver();
          boolean gpsStatus = Settings.Secure.isLocationProviderEnabled(
                  contentResolver, LocationManager.GPS_PROVIDER);
          if (gpsStatus) {
              return true;
  
          } else {
              return false;
          }
      }
  
      /*----------Method to create an AlertBox ------------- */
      protected void alertbox(String title, String mymessage) {
          AlertDialog.Builder builder = new AlertDialog.Builder(this);
          builder.setMessage("Your Device's GPS is Disable")
                  .setCancelable(false)
                  .setTitle("** Gps Status **")
                  .setPositiveButton("Gps On",
                          new DialogInterface.OnClickListener() {
                              public void onClick(DialogInterface dialog, int id) {
                                  // finish the current activity
                                  // AlertBoxAdvance.this.finish();
                                  Intent myIntent = new Intent(
                                          Settings.ACTION_SECURITY_SETTINGS);
                                  startActivity(myIntent);
                                  dialog.cancel();
                              }
                          })
                  .setNegativeButton("Cancel",
                          new DialogInterface.OnClickListener() {
                              public void onClick(DialogInterface dialog, int id) {
                                  // cancel the dialog box
                                  dialog.cancel();
                              }
                          });
          AlertDialog alert = builder.create();
          alert.show();
      }
  
      /*----------Listener class to get coordinates ------------- */
      private class MyLocationListener implements LocationListener {
          @Override
          public void onLocationChanged(Location loc) {
  
                  editLocation.setText("");
                  pb.setVisibility(View.INVISIBLE);
                  Toast.makeText(getBaseContext(),"Location changed : Lat: " + loc.getLatitude()
                                  + " Lng: " + loc.getLongitude(),Toast.LENGTH_SHORT).show();
                  String longitude = "Longitude: " +loc.getLongitude();  
                  Log.v(TAG, longitude);
                  String latitude = "Latitude: " +loc.getLatitude();
                  Log.v(TAG, latitude);
  
                  /*----------to get City-Name from coordinates ------------- */
                  String cityName=null;
                  String addrs = null;
                  String pCode = null;
                  Geocoder gcd = new Geocoder(getBaseContext(), Locale.getDefault());                  
                  List&lt;Address&gt;  addresses;  
                  try {  
                   addresses = gcd.getFromLocation(loc.getLatitude(), loc.getLongitude(), 1);  
                   if (addresses.size() &gt; 0)  
                    System.out.println(addresses.get(0).getLocality());
  
                   cityName=addresses.get(0).getLocality();
                   addrs = addresses.get(0).getAddressLine(0);
                   pCode = addresses.get(0).getPostalCode();
                  } catch (IOException e) {                 
                   e.printStackTrace();  
                  } 
  
                  String s = longitude+"\n"+latitude +"\n\nMy Currrent City is: "+cityName+" Address "+ addrs+
                          " Postal Code"+pCode;
                  editLocation.setText(s);
          }
  
          @Override
          public void onProviderDisabled(String provider) {
              // TODO Auto-generated method stub          
          }
  
          @Override
          public void onProviderEnabled(String provider) {
              // TODO Auto-generated method stub          
          }
  
          @Override
          public void onStatusChanged(String provider, int status, Bundle extras) {
              // TODO Auto-generated method stub          
          }
      }
  
  
  
  }
  </code></pre>