GetCurrentLocation in android

[pullquote align="normal"] [/pullquote] package com.rdc;

import java.io.IOException;

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;                   
                Geocoder gcd = new Geocoder(getBaseContext(), Locale.getDefault());                  
                List<Address>  addresses; 
                try { 
                 addresses = gcd.getFromLocation(loc.getLatitude(), loc.getLongitude(), 2); 
                 if (true) 
                  System.out.println(addresses.get(0).getLocality()); 
                 cityName=addresses.get(0).getLocality();
                 System.out.println("City name:"+cityName);
                } catch (IOException e) {                 
                 e.printStackTrace(); 
                }
               
                String s = longitude+"\n"+latitude +"\n\nMy Currrent City is: "+cityName;
                 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           
        }
    }
   
   

}


Comments

Post a Comment

Welcome To Android

Popular Posts