位置信息的取得/GPS的使用
2010-08-25 18:17 Alex77Lee 阅读(648) 评论(0) 编辑 收藏 举报这里位置信息的取得/GPS的使用
android.location.LocationManager类
android.location.LocationListener接口
android.location.Location类
android.location.LocationProvider类
LocationManager
● LocationManager实例的取得,调用Context.getSystemService(LOCATION_SERVICE)方法。
● 位置信息更新的取得,调用requestLocationUpdates()方法。
第1个参数,LocationManager.GPS_PROVIDER
第4个参数,LocationListener实例
● 不需要位置信息更新的时候,调用removeUpdates()方法。
必须像下面那样定义AndroidManifest.xml。
<uses-permission android:name="android.permission.android.permission.ACCESS_FINE_LOCATION"/>
LocationListener
● 在取得GPS位置信息的类里实现LocationListener接口。
● 位置信息更新的时候,会触发onLocationChanged()事件
● 这个时候,通过作为参数传递过来的Location可以取得位置信息。
● 位置信息状态更新的时候,会触发onStatusChanged()事件
Location
● Latitude(纬度)的取得,调用getLatitude()方法
● Longitude(经度)的取得,调用getLongitude()方法
● Accuracy(精度)的取得,调用getAccuracy()方法
● (高度)的取得,调用getAltitude()方法
● Time的取得,调用getTime()方法
● Speed的取得,调用getSpeed()方法
● Bearing的取得,调用getBearing()方法
package com.adakoda.locationtest; import android.app.Activity; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.location.LocationProvider; import android.os.Bundle; import android.util.Log; public class LocationTestActivity extends Activity implements LocationListener { private LocationManager mLocationManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE); } @Override protected void onResume() { if (mLocationManager != null) { mLocationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, // LocationManager.NETWORK_PROVIDER, 0, 0, this); } super.onResume(); } @Override protected void onPause() { if (mLocationManager != null) { mLocationManager.removeUpdates(this); } super.onPause(); } @Override public void onLocationChanged(Location location) { Log.v("----------", "----------"); Log.v("Latitude", String.valueOf(location.getLatitude())); Log.v("Longitude", String.valueOf(location.getLongitude())); Log.v("Accuracy", String.valueOf(location.getAccuracy())); Log.v("Altitude", String.valueOf(location.getAltitude())); Log.v("Time", String.valueOf(location.getTime())); Log.v("Speed", String.valueOf(location.getSpeed())); Log.v("Bearing", String.valueOf(location.getBearing())); } @Override public void onProviderDisabled(String provider) { } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { switch (status) { case LocationProvider.AVAILABLE: Log.v("Status", "AVAILABLE"); break; case LocationProvider.OUT_OF_SERVICE: Log.v("Status", "OUT_OF_SERVICE"); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: Log.v("Status", "TEMPORARILY_UNAVAILABLE"); break; } } }