Android 技术总结(015)—— 获取当前经纬度以及地名
public class GPSLocation {private LocationManagerProxy mLocationManager;private Context mContext;LocationManager mManager;public GPSLocation(Context context) {this.mContext = context;mLocationManager = LocationManagerProxy.getInstance(context);mManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);}public void enableMyLocation(LocationListener listener) {Location location;if (NetworkState.TYPE_WIFI == NetworkState.searchNetworkType(mContext)){location = mManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);}else{location = mManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);}if (location != null){listener.onLocationChanged(location);}else{Criteria cri = new Criteria();cri.setAccuracy(Criteria.ACCURACY_COARSE);cri.setAltitudeRequired(false);cri.setBearingRequired(false);cri.setCostAllowed(false);String bestProvider = mLocationManager.getBestProvider(cri, true);try{mLocationManager.requestLocationUpdates(bestProvider, 2000, 10, listener);}catch (Exception e){listener.onLocationChanged(null);}}}public void disableMyLocation(LocationListener listener) {if (mLocationManager != null){mLocationManager.removeUpdates(listener);mLocationManager.destory();mLocationManager = null;}if (mManager != null){mManager.removeUpdates(listener);}}}