去年公司写东西用到了这个,然后遗忘了,今年又来一波这个功能整理一下吧。
老样子,拷贝可用!!!把每一个类拷贝上就行!!!
首先是工具类:
GPS定位,第一个类
public class GPSLocation implements LocationListener {
private GPSLocationListener mGpsLocationListener;
public GPSLocation(GPSLocationListener gpsLocationListener) {
this.mGpsLocationListener = gpsLocationListener;
}
@Override
public void onLocationChanged(Location location) {
if (location != null) {
mGpsLocationListener.UpdateLocation(location);
}
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
mGpsLocationListener.UpdateStatus(provider, status, extras);
switch (status) {
case LocationProvider.AVAILABLE:
mGpsLocationListener.UpdateGPSProviderStatus(GPSProviderStatus.GPS_AVAILABLE);
break;
case LocationProvider.OUT_OF_SERVICE:
mGpsLocationListener.UpdateGPSProviderStatus(GPSProviderStatus.GPS_OUT_OF_SERVICE);
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
mGpsLocationListener.UpdateGPSProviderStatus(GPSProviderStatus.GPS_TEMPORARILY_UNAVAILABLE);
break;
}
}
@Override
public void onProviderEnabled(String provider) {
mGpsLocationListener.UpdateGPSProviderStatus(GPSProviderStatus.GPS_ENABLED);
}
@Override
public void onProviderDisabled(String provider) {
mGpsLocationListener.UpdateGPSProviderStatus(GPSProviderStatus.GPS_DISABLED);
}
}
GPS管理者类
GPS管理者类
public class GPSLocationManager {
private static final String GPS_LOCATION_NAME = android.location.LocationManager.GPS_PROVIDER;
private static GPSLocationManager gpsLocationManager;
private static Object objLock = new Object();
private boolean isGpsEnabled;
private static String mLocateType;
private WeakReference<Activity> mContext;
private LocationManager locationManager;
private GPSLocation mGPSLocation;
private boolean isOPenGps;
private long mMinTime;
private float mMinDistance;
private Handler handler;
private Timer timer ;
private TimerTask task;
private Activity context;
private GPSLocationManager(Activity context) {
initData(context);
this.context= context;
}
private void initData(Activity context) {
this