This is the full code of a current location address
Check this code...
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// making it full screen
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
// Getting reference to MapView
mapView = (MapView) findViewById(R.id.map_view);
// Setting Zoom Controls on MapView
mapView.setBuiltInZoomControls(true);
List<Overlay> mapOverlays = mapView.getOverlays();
mlo = new MyLocationOverlay(this.getApplicationContext(),mapView);
if(!mlo.enableMyLocation()){
Toast.makeText(this, R.string.toast, Toast.LENGTH_LONG).show();
this.finish();
}
mlo.enableCompass();
mapOverlays.add(mlo);
......
}
@Override
public void onLocationChanged(Location location) {
tvLocation = (TextView) findViewById(R.id.tv_location);
String address = "";
Geocoder geoCoder = new Geocoder(
getBaseContext(), Locale.getDefault());
// Getting latitude
latitude = location.getLatitude();
// Getting longitude
longitude = location.getLongitude();
// Creating an instance of GeoPoint corresponding to latitude and longitude
point = new GeoPoint((int)(latitude * 1E6), (int)(longitude*1E6));
try {
List<Address> addresses = geoCoder.getFromLocation(
point.getLatitudeE6() / 1E6,
point.getLongitudeE6() / 1E6, 1);
if (addresses.size() > 0) {
for (int index = 0; index < addresses.get(0).getMaxAddressLineIndex(); index++)
address += addresses.get(0).getAddressLine(index) + " ";
}
tvLocation.setText("Address :" + address );
}
catch (IOException e) {
e.printStackTrace();
}
// Setting latitude and longitude in the TextView tv_location
tvLocation.setText("Latitude:" + latitude + ", Longitude:"+ longitude +", Address :"+ address );
// Getting MapController
MapController mapController = mapView.getController();
// Locating the Geographical point in the Map
mapController.animateTo(point);
// Applying a zoom
mapController.setZoom(15);
// Redraw the map
mapView.invalidate();
// Getting list of overlays available in the map
List<Overlay> mapOverlays = mapView.getOverlays();
// Creating a drawable object to represent the image of mark in the map
Drawable drawable = this.getResources().getDrawable(R.drawable.cur_position);
// Creating an instance of ItemizedOverlay to mark the current location in the map
CurrentLocationOverlay currentLocationOverlay = new CurrentLocationOverlay(drawable);
// Creating an item to represent a mark in the overlay
OverlayItem currentLocation = new OverlayItem(point, "Current Location", "Latitude : " + latitude + ", Longitude:" + longitude);
// Adding the mark to the overlay
currentLocationOverlay.addOverlay(currentLocation);
// Clear Existing overlays in the map
mapOverlays.clear();
// Adding new overlay to map overlay
mapOverlays.add(currentLocationOverlay);
}
public void onSendLocationEmail(View button) {
String txt = tvLocation.getText().toString();
// Take the fields and format the message contents
String subject = formatSubject(txt);
String message = formatMessage(txt);
sendMessage(subject, message, location);
Toast.makeText(getApplicationContext(),"Clicked Send Email Button" + "-", Toast.LENGTH_SHORT).show();
}
private String formatSubject(String txt) {
String strSubjectFormat = getResources().getString(R.string.mapsubject_format);
String strSubject = String.format(strSubjectFormat, txt);
return strSubject;
}
private String formatMessage(String txt) {
String strFormatMsg = getResources().getString(R.string.mapbody_format);
String strMsg = String.format(strFormatMsg, txt);
return strMsg;
}
private void sendMessage(String subject, String message,Location location) {
try {
Intent messageIntent = new Intent(android.content.Intent.ACTION_SEND);
messageIntent.setType("plain/text");
String aEmailList[] = { "mailId@gmail.com" };
messageIntent.putExtra(android.content.Intent.EXTRA_EMAIL, aEmailList);
messageIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
messageIntent.putExtra(android.content.Intent.EXTRA_TEXT,
message + "http://maps.google.com/maps?q=loc:" + latitude +","+ longitude);
startActivity(Intent.createChooser(messageIntent, "Send mail..."));
}
catch (Exception e) {
Log.e(LOG_TAG, "sendPictureMessage() failed to start activity.", e);
Toast.makeText(this, "There are no email clients installed.", Toast.LENGTH_LONG).show();
}
}