From 13b3e727a6c252887cea8aa6b0856c967f036731 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期五, 20 九月 2024 10:55:39 +0800 Subject: [PATCH] 登录功能、地图功能、首页table --- app/src/main/java/com/dayu/pipirrapp/service/MyLocationService.java | 55 +++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 37 insertions(+), 18 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..0b665fd 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.db.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 @@ -85,13 +90,6 @@ // 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,21 +205,41 @@ * 鐧惧害瀹氫綅鐨勭洃鍚� */ 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() { @@ -233,10 +252,10 @@ if (locationManager != null) { locationManager.removeUpdates(listener); } - if (mBDLocationClient != null) { - mBDLocationClient.stop(); - mBDLocationClient.unRegisterLocationListener(mBDLocationListener); - } +// if (mBDLocationClient != null) { +// mBDLocationClient.stop(); +// mBDLocationClient.unRegisterLocationListener(mBDLocationListener); +// } } catch (Exception e) { CrashReport.postCatchedException(e); -- Gitblit v1.8.0