GPS追踪服务

public class GPSService extends Service {
private LocationManager lm;
private MyListener listener;
private SharedPreferences sp;

@Override
public IBinder onBind(Intent intent) {
return null;
}

@Override
public void onCreate() {
lm = (LocationManager) getSystemService(LOCATION_SERVICE);
sp = getSharedPreferences("config", MODE_PRIVATE);

// 查询条件
Criteria criteria = new Criteria();
// 精确到
criteria.setAccuracy(Criteria.ACCURACY_FINE);
// 关心海拔
criteria.setAltitudeRequired(true);
// 运行产生开销
criteria.setCostAllowed(true);
// 允许最大电量请求
criteria.setPowerRequirement(Criteria.POWER_HIGH);
String provider = lm.getBestProvider(criteria, true);
System.out.println("最好的提供者:" + provider);
listener = new MyListener();
lm.requestLocationUpdates(provider, 0, 0, listener);
super.onCreate();
}

private class MyListener implements LocationListener {

// 当位置变化的时候 调用的方法
@Override
public void onLocationChanged(Location location) {
String longitude = "jingdu:" + location.getLongitude();
String latitude = "weidu:" + location.getLatitude();
String accuacy = "jingquedu:" + location.getAccuracy();
Editor editor = sp.edit();
editor.putString("last_location", latitude + longitude + accuacy);
editor.commit();
}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {

}

@Override
public void onProviderEnabled(String provider) {

}

@Override
public void onProviderDisabled(String provider) {

}

}

@Override
public void onDestroy() {
lm.removeUpdates(listener);
listener = null;
super.onDestroy();
}
}

 

<service android:name="com.itheima.mobilesafe.service.GPSService" ></service>

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />//精确定位
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />//大体定位
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />//模拟器专用

posted @ 2015-11-23 13:29  黑土白云  阅读(235)  评论(0编辑  收藏  举报