标签:

/*** 获取经纬度坐标的service** @author Kevin**/public class LocationService extends Service {private LocationManager lm;private MyLocationListener listener;private SharedPreferences mPref;@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic void onCreate() {super.onCreate();mPref = getSharedPreferences("config", MODE_PRIVATE);lm = (LocationManager) getSystemService(LOCATION_SERVICE);// List<String> allProviders = lm.getAllProviders();// 获取所有位置提供者// System.out.println(allProviders);Criteria criteria = new Criteria();//条件、标准criteria.setCostAllowed(true);// 是否允许付费,比如使用3g网络定位criteria.setAccuracy(Criteria.ACCURACY_FINE);//精确度String bestProvider = lm.getBestProvider(criteria, true);// 获取最佳位置提供者listener = new MyLocationListener();lm.requestLocationUpdates(bestProvider, 0, 0, listener);// 参1表示位置提供者,参2表示最短更新时间,参3表示最短更新距离}class MyLocationListener implements LocationListener {// 位置发生变化@Overridepublic void onLocationChanged(Location location) {System.out.println("get location!");// 将获取的经纬度保存在sp中mPref.edit().putString("location","j:" + location.getLongitude() + "; w:"+ location.getLatitude()).commit();stopSelf();//停掉service}// 位置提供者状态发生变化@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {System.out.println("onStatusChanged");}// 用户打开gps@Overridepublic void onProviderEnabled(String provider) {System.out.println("onProviderEnabled");}// 用户关闭gps@Overridepublic void onProviderDisabled(String provider) {System.out.println("onProviderDisabled");}}@Overridepublic void onDestroy() {super.onDestroy();lm.removeUpdates(listener);// 当activity销毁时,停止更新位置, 节省电量}<service android:name=".service.LocationService" > </service>
标签:
原文地址:http://www.cnblogs.com/liuyu0529/p/4921712.html