一、参考源码:
GPS Basic Example - Android Example
http://androidexample.com/GPS_Basic__-__Android_Example/index.php?view=article_discription&aid=68&aaid=93
二、Permission:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" />
三、Example:
package com.example.gpsbasics; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.util.Log; import android.widget.Toast; import android.app.Activity; import android.content.Context; public class MainActivity extends Activity implements LocationListener { private LocationManager locationManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /********** get Gps location service LocationManager object ***********/ /********** 获取GPS服务管理对象 ************/ locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); /* Parameters : First(provider) : the name of the provider with which to register : 注册的名字 Second(minTime) : the minimum time interval for notifications, in milliseconds. This field is only used as a hint to conserve power, and actual time between location updates may be greater or lesser than this value. : 最小通知时间间隔,以毫秒为单位。此字段仅作为节省电力方式,并且位置更新之间的实际时间可以比该值更大或更小。 Third(minDistance) : the minimum distance interval for notifications, in meters : 最小间隔通知,以毫秒为单位 Fourth(listener) : a {#link LocationListener} whose onLocationChanged(Location) method will be called for each location update : 每个位置更新时谁的onLocationChanged (位置)方法将被调用 */ locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, // 3 sec 10, this); /********* After registration onLocationChanged method called periodically after each 3 sec ***********/ } /************* Called after each 3 sec **********/ @Override public void onLocationChanged(Location location) { // location.getLatitude(): 纬度 // location.getLongitude(): 维度 String str = "Latitude: "+location.getLatitude()+" \nLongitude: "+location.getLongitude(); Toast.makeText(getBaseContext(), str, Toast.LENGTH_LONG).show(); Log.e("GPSBasics", "onLocationChanged."); } @Override public void onProviderDisabled(String provider) { /******** Called when User off Gps *********/ Toast.makeText(getBaseContext(), "Gps turned off ", Toast.LENGTH_LONG).show(); } @Override public void onProviderEnabled(String provider) { /******** Called when User on Gps *********/ Toast.makeText(getBaseContext(), "Gps turned on ", Toast.LENGTH_LONG).show(); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } }