The following code shows how to Get your location.
Register permission
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.java2s.myapplication3.app" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="java2s.com" android:theme="@style/AppTheme" > <activity android:name="com.java2s.myapplication3.app.MainActivity" android:label="java2s.com" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Main Layout xml file
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
Main activity Java code
package com.java2s.myapplication3.app; /* w ww . j av a 2 s . co m*/ import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.provider.Settings; import android.widget.TextView; public class MainActivity extends Activity { private LocationManager mManager; private Location mCurrentLocation; private TextView mLocationView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mLocationView = new TextView(this); setContentView(mLocationView); mManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); } @Override public void onResume() { super.onResume(); if(!mManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Location Manager"); builder.setMessage("We would like to use your location, " + "but GPS is currently disabled.\n" + "Would you like to change these settings now?"); builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Launch settings, allowing user to make a change Intent i = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(i); } }); builder.setNegativeButton("No", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //No location service, no Activity finish(); } }); builder.create().show(); } mCurrentLocation = mManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); updateDisplay(); int minTime = 5000; float minDistance = 0; mManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime, minDistance, mListener); } @Override public void onPause() { super.onPause(); mManager.removeUpdates(mListener); } private void updateDisplay() { if(mCurrentLocation == null) { mLocationView.setText("Determining Your Location..."); } else { mLocationView.setText(String.format("Your Location:\n%.2f, %.2f", mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude())); } } private LocationListener mListener = new LocationListener() { @Override public void onLocationChanged(Location location) { mCurrentLocation = location; updateDisplay(); } @Override public void onProviderDisabled(String provider) { } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } }; }