package com.heweather.owp.service; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.support.annotation.Nullable; import android.util.Log; import com.amap.api.location.AMapLocation; import com.amap.api.location.AMapLocationClient; import com.amap.api.location.AMapLocationClientOption; import com.amap.api.location.AMapLocationListener; import com.heweather.owp.MyApplication; import com.heweather.owp.utils.ContentUtil; public class LocationService extends Service { private final String TAG = "sky"; //声明AMapLocationClient类对象 public AMapLocationClient mLocationClient = null; //声明定位回调监听器 public AMapLocationListener mLocationListener = new AMapLocationListener() { @Override public void onLocationChanged(AMapLocation aMapLocation) { if (aMapLocation.getErrorCode() == 0) { ContentUtil.NOW_LON = aMapLocation.getLongitude(); ContentUtil.NOW_LAT = aMapLocation.getLatitude(); Log.i(TAG, "now location: " + ContentUtil.NOW_LON + "," + ContentUtil.NOW_LAT); }else { String errText = "定位失败," + aMapLocation.getErrorCode() + ": " + aMapLocation.getErrorInfo(); Log.e(TAG, errText); } } }; public LocationService() { } @Override public void onCreate() { super.onCreate(); //初始化定位 mLocationClient = new AMapLocationClient(getApplicationContext()); //声明AMapLocationClientOption对象 AMapLocationClientOption mLocationOption = new AMapLocationClientOption(); //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。 mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); //设置定位间隔,单位毫秒,默认为2000ms,最低1000ms。 mLocationOption.setInterval(10000); //单位是毫秒,默认30000毫秒,建议超时时间不要低于8000毫秒。 mLocationOption.setHttpTimeOut(20000); mLocationClient.setLocationListener(mLocationListener); //给定位客户端对象设置定位参数 mLocationClient.setLocationOption(mLocationOption); //启动定位 mLocationClient.startLocation(); } @Nullable @Override public IBinder onBind(Intent intent) { return null; } }