From 3a161aeef6dfe08aa80fca6fb2c1650ebdd31d59 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期四, 01 二月 2024 15:29:19 +0800 Subject: [PATCH] 天气相关 --- app/src/main/java/com/dayu/pipirrapp/service/MyLocationService.java | 49 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 34 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/dayu/pipirrapp/service/MyLocationService.java b/app/src/main/java/com/dayu/pipirrapp/service/MyLocationService.java index 61a4cf3..7eb9e0e 100644 --- a/app/src/main/java/com/dayu/pipirrapp/service/MyLocationService.java +++ b/app/src/main/java/com/dayu/pipirrapp/service/MyLocationService.java @@ -21,7 +21,9 @@ 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; /** @@ -41,7 +43,10 @@ /** * 鏄惁涓�娆℃�у畾浣� */ - boolean isSingle; + boolean isSingle = false; + + // 鏄惁宸茬粡瀹氫綅 + boolean isPositioned = false; @Nullable @Override @@ -82,16 +87,9 @@ super.onCreate(); createNativeLocation(); -// createBDLocation(); + createBDLocation(); } -// /** -// * @param isSingle 鏄惁鏄崟娆″畾浣� -// */ -// public MyLocationService(boolean isSingle) { -// this.isSingle = isSingle; -// -// } /** * 鍘熺敓鐨勫畾浣嶆湇鍔� @@ -176,6 +174,7 @@ 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 @@ -206,22 +205,42 @@ * 鐧惧害瀹氫綅鐨勭洃鍚� */ 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"); -- Gitblit v1.8.0