| | |
| | | import com.baidu.location.LocationClientOption; |
| | | import com.dayu.pipirrapp.R; |
| | | import com.dayu.pipirrapp.activity.MainActivity; |
| | | import com.dayu.pipirrapp.bean.LatLonBean; |
| | | import com.dayu.pipirrapp.utils.MyLog; |
| | | import com.jeremyliao.liveeventbus.LiveEventBus; |
| | | import com.tencent.bugly.crashreport.CrashReport; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 是否一次性定位 |
| | | */ |
| | | boolean isSingle; |
| | | boolean isSingle = false; |
| | | |
| | | // 是否已经定位 |
| | | boolean isPositioned = false; |
| | | |
| | | @Nullable |
| | | @Override |
| | |
| | | super.onCreate(); |
| | | |
| | | createNativeLocation(); |
| | | // createBDLocation(); |
| | | createBDLocation(); |
| | | } |
| | | |
| | | // /** |
| | | // * @param isSingle 是否是单次定位 |
| | | // */ |
| | | // public MyLocationService(boolean isSingle) { |
| | | // this.isSingle = isSingle; |
| | | // |
| | | // } |
| | | |
| | | /** |
| | | * 原生的定位服务 |
| | |
| | | String longitude = "Longitude:" + location.getLongitude(); |
| | | String latitude = "Latitude:" + location.getLatitude(); |
| | | MyLog.i("原生定位onLocationChanged: Latitude:" + latitude + " Longitude:" + longitude); |
| | | postPosition(location.getLatitude(), location.getLongitude()); |
| | | // 是否一次性定位 |
| | | if (isSingle) { |
| | | stopSelf(); // 获取到经纬度以后,停止该service |
| | |
| | | * 百度定位的监听 |
| | | */ |
| | | class MyBDLocationListener extends BDAbstractLocationListener { |
| | | |
| | | @Override |
| | | public void onReceiveLocation(BDLocation location) { |
| | | |
| | | double latitude = location.getLatitude(); //获取纬度信息 |
| | | double longitude = location.getLongitude(); //获取经度信息 |
| | | // MyLog.i("百度的监听 latitude:" + latitude); |
| | | // MyLog.i("百度的监听 longitude:" + longitude); |
| | | MyLog.i("百度的监听 onBaiduLocationChanged: latitude:" + latitude + " longitude:" + longitude); |
| | | if (isSingle) { |
| | | stopSelf(); // 获取到经纬度以后,停止该service |
| | | } |
| | | } |
| | | |
| | | |
| | | if (!String.valueOf(latitude).equals("4.9E-324")) { |
| | | //不为4.9E-324时才是定位成功 |
| | | postPosition(latitude, longitude); |
| | | if (isSingle) { |
| | | stopSelf(); // 获取到经纬度以后,停止该service |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @param latitude |
| | | * @param longitude |
| | | */ |
| | | private void postPosition(double latitude, double longitude) { |
| | | if (isSingle && isPositioned) { |
| | | return; |
| | | } |
| | | LatLonBean latLonBean = new LatLonBean(); |
| | | latLonBean.setLatitude(latitude); |
| | | latLonBean.setLongitude(longitude); |
| | | LiveEventBus.get("location").post(latLonBean); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void onDestroy() { |
| | | MyLog.i("MyLocationService--onDestroy"); |