From 45e69852f43abe0f79967786ada3c7cf887b5b48 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期二, 24 九月 2024 10:53:14 +0800 Subject: [PATCH] 从服务端获取取水口坐标并显示在地图上 --- app/src/main/java/com/dayu/pipirrapp/bean/db/MarkerBean.java | 126 ++++++++++++ app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java | 69 +++++- app/src/main/assets/js/map.js | 93 +++++--- app/src/main/java/com/dayu/pipirrapp/activity/LoginActivity.java | 2 app/src/main/java/com/dayu/pipirrapp/view/TagDialog.java | 4 app/src/main/java/com/dayu/pipirrapp/js/MyWebViewInterface.java | 11 app/src/main/java/com/dayu/pipirrapp/bean/net/MarkerResult.java | 182 ++++++++++++++++++ app/src/main/assets/img/marker_blue.svg | 1 app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java | 74 ++++++- app/src/main/java/com/dayu/pipirrapp/net/ApiService.java | 13 app/src/main/java/com/dayu/pipirrapp/net/MyIntercepterApplication.java | 2 app/src/main/java/com/dayu/pipirrapp/utils/CommonData.java | 2 12 files changed, 501 insertions(+), 78 deletions(-) diff --git a/app/src/main/assets/img/marker_blue.svg b/app/src/main/assets/img/marker_blue.svg new file mode 100644 index 0000000..497061f --- /dev/null +++ b/app/src/main/assets/img/marker_blue.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#1890FF"><rect fill="none" height="24" width="24"/><path d="M12,2L12,2C8.13,2,5,5.13,5,9c0,1.74,0.5,3.37,1.41,4.84c0.95,1.54,2.2,2.86,3.16,4.4c0.47,0.75,0.81,1.45,1.17,2.26 C11,21.05,11.21,22,12,22h0c0.79,0,1-0.95,1.25-1.5c0.37-0.81,0.7-1.51,1.17-2.26c0.96-1.53,2.21-2.85,3.16-4.4 C18.5,12.37,19,10.74,19,9C19,5.13,15.87,2,12,2z M12,11.75c-1.38,0-2.5-1.12-2.5-2.5s1.12-2.5,2.5-2.5s2.5,1.12,2.5,2.5 S13.38,11.75,12,11.75z"/></svg> \ No newline at end of file diff --git a/app/src/main/assets/js/map.js b/app/src/main/assets/js/map.js index 8254aa0..cdd6aef 100644 --- a/app/src/main/assets/js/map.js +++ b/app/src/main/assets/js/map.js @@ -3,12 +3,12 @@ const locationIMGPath = 'img/location.png'; const markerBalckPath = 'img/marker_black.svg'; const markerRedPath = 'img/marker_red.svg'; - + const markerBluePath = 'img/marker_blue.svg'; let map; let lastMarker = null; let lastClickedMarker = null; let isShowWaterIntakeDetail = false; - let zoom=12; + let zoom = 12; document.addEventListener('DOMContentLoaded', function () { @@ -18,8 +18,8 @@ mountMethodToWindow(); }); - window.onload = function() { - //鍔犺浇鍧愭爣鐐� + window.onload = function () { + //鍔犺浇鍧愭爣鐐� window.Android.loadMarker(); }; // 鍒濆鍖栧湴鍥� @@ -89,7 +89,7 @@ for (let i = 0; i < data_info.length; i++) { let icon = new T.Icon({ - iconUrl: markerBalckPath, + iconUrl: markerBluePath, iconSize: new T.Point(27, 27), iconAnchor: new T.Point(10, 25) }); @@ -130,6 +130,7 @@ // 鎵嬫満鑾峰彇鍒板畾浣嶅悗鏄剧ず瀹氫綅 function locationOverLay(lng, lag) { + console.log("function銆嬨�嬨�嬨�嬨�媗ocationOverLay"); map.centerAndZoom(new T.LngLat(lng, lag), 18); let icon = new T.Icon({ @@ -142,11 +143,20 @@ map.addOverLay(marker); } + + //璁剧疆鍦板浘涓績鐐� + function setCenterAndZoom(lng, lat) { + console.log("function銆嬨�嬨�嬨�嬨�媠etCenterAndZoom>>>>lng:" + lng + ",lat:" + lat); + map.centerAndZoom(new T.LngLat(lng, lat), zoom); + } + + // 灏嗘柟娉曟寕杞藉埌 window 涓� function mountMethodToWindow() { window.locationOverLay = locationOverLay; window.showToast = showToast; window.addMarker = addMarker; + window.setCenterAndZoom = setCenterAndZoom; } // 璋冪敤鍘熺敓瀹夊崜鏂规硶鏄剧ず鍙栨按鍙h鎯� @@ -157,24 +167,24 @@ // 璋冪敤鍘熺敓瀹夊崜鏂规硶闅愯棌鍙栨按鍙h鎯� function closeWaterIntakeDetail(data) { - if (lastClickedMarker!== null) { + if (lastClickedMarker !== null) { // 濡傛灉鏈夌偣鍑诲彇姘村彛鍒欏皢鍙栨按鍙f仮澶嶆垚榛戣壊 // 涓婃鐐瑰嚮鐨勬爣娉ㄦ敼涓洪粦鑹� var defaulticon = new T.Icon({ - iconUrl: markerBalckPath, - iconSize: new T.Point(27, 27), - iconAnchor: new T.Point(10, 25) + iconUrl: markerBluePath, + iconSize: new T.Point(27, 27), + iconAnchor: new T.Point(10, 25) }); lastClickedMarker.setIcon(defaulticon); - } - if (isShowWaterIntakeDetail) { + } + if (isShowWaterIntakeDetail) { // 鍋囧鏄剧ず浜嗗彇姘村彛璇︽儏鍒欓殣钘忓彇姘村彛璇︽儏 isShowWaterIntakeDetail = false; window.Android.closeWaterIntakeView(); - } else { + } else { // 鍋囧娌℃湁鏄剧ず鍙栨按鍙e垯娣诲姞鐐瑰嚮鐨勫潗鏍� getLngLat(data.lnglat); - } + } } // 鐐瑰嚮鏍囨敞鐨勪簨浠� @@ -185,28 +195,28 @@ // 淇敼鐐瑰嚮鏍囨敞鐨勫浘鏍� function chageMarkerIcon(data) { - // 鐐瑰嚮鐨勬爣娉ㄦ敼涓虹孩鑹� - var currentMarker = data.target; - // 鐐瑰嚮鍚庡浘鏍� - var clickedIcon = new T.Icon({ - iconUrl: markerRedPath, - iconSize: new T.Point(27, 27), - iconAnchor: new T.Point(10, 25) - }); - // 璁剧疆褰撳墠鐐瑰嚮鐨� marker 涓虹偣鍑诲悗鍥炬爣 - currentMarker.setIcon(clickedIcon); - // 鍒ゆ柇鐐瑰嚮鐨勪笉鏄悓涓�涓潗鏍� - if (lastClickedMarker!== null) { - if (!isEqualsLngLat(data.target.getLngLat(), lastClickedMarker.getLngLat())) { - var defaulticon = new T.Icon({ - iconUrl: markerBalckPath, - iconSize: new T.Point(27, 27), - iconAnchor: new T.Point(10, 25) - }); - lastClickedMarker.setIcon(defaulticon); - } - } - lastClickedMarker = data.target; + // 鐐瑰嚮鐨勬爣娉ㄦ敼涓虹孩鑹� + var currentMarker = data.target; + // 鐐瑰嚮鍚庡浘鏍� + var clickedIcon = new T.Icon({ + iconUrl: markerRedPath, + iconSize: new T.Point(27, 27), + iconAnchor: new T.Point(10, 25) + }); + // 璁剧疆褰撳墠鐐瑰嚮鐨� marker 涓虹偣鍑诲悗鍥炬爣 + currentMarker.setIcon(clickedIcon); + // 鍒ゆ柇鐐瑰嚮鐨勪笉鏄悓涓�涓潗鏍� + if (lastClickedMarker !== null) { + if (!isEqualsLngLat(data.target.getLngLat(), lastClickedMarker.getLngLat())) { + var defaulticon = new T.Icon({ + iconUrl: markerBluePath, + iconSize: new T.Point(27, 27), + iconAnchor: new T.Point(10, 25) + }); + lastClickedMarker.setIcon(defaulticon); + } + } + lastClickedMarker = data.target; } //璋冨畨鍗撳師鐢� function showToast() { @@ -222,7 +232,7 @@ console.log("function銆嬨�嬨�嬨�嬨�媋ddMarker"); var array = JSON.parse(jsonData); var icon = new T.Icon({ - iconUrl: markerBalckPath, + iconUrl: markerBluePath, iconSize: new T.Point(27, 27), iconAnchor: new T.Point(10, 25) }); @@ -235,6 +245,17 @@ addMarkerListener(data) }); map.addOverLay(marker); // 灏嗘爣娉ㄦ坊鍔犲埌鍦板浘涓� + let label = new T.Label({ + text: element[2], + position: marker.getLngLat(), + offset: new T.Point(-35, 8), // 璁剧疆鏍囨敞鏂囧瓧鐨勪綅缃� + opacity: 1, // 璁剧疆鏂囨湰鐨勬樉绀轰笉閫忔槑搴︼紙鑼冨洿0-1锛� + }); + label.setBorderLine(0); // 璁剧疆鏂囨湰鐨勮竟妗嗙嚎瀹� + label.setBackgroundColor("transparent"); // 璁剧疆鏂囨湰鐨勮儗鏅壊锛堥�忔槑鑹诧級 + label.setFontColor("#0000FF"); + label.setFontSize(10); + map.addOverLay(label); }); return "addMarker鍔犺浇鎴愬姛" } diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/LoginActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/LoginActivity.java index 0d8c0f5..5adb68e 100644 --- a/app/src/main/java/com/dayu/pipirrapp/activity/LoginActivity.java +++ b/app/src/main/java/com/dayu/pipirrapp/activity/LoginActivity.java @@ -32,7 +32,6 @@ import com.dayu.pipirrapp.utils.CommonData; import com.dayu.pipirrapp.utils.SharedPreferencesHelper; import com.dayu.pipirrapp.utils.ToastUtil; -import com.dayu.pipirrapp.view.TagDialog; import com.tencent.bugly.crashreport.CrashReport; import java.util.HashMap; @@ -67,7 +66,6 @@ private void initData() { - } diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/db/MarkerBean.java b/app/src/main/java/com/dayu/pipirrapp/bean/db/MarkerBean.java new file mode 100644 index 0000000..e259685 --- /dev/null +++ b/app/src/main/java/com/dayu/pipirrapp/bean/db/MarkerBean.java @@ -0,0 +1,126 @@ +package com.dayu.pipirrapp.bean.db; + +import androidx.room.Entity; +import androidx.room.PrimaryKey; + +/** + * author: zuo + * Date: 2024-09-20 + * Time: 14:56 + * 澶囨敞锛� + */ +@Entity +public class MarkerBean { + @PrimaryKey(autoGenerate = true) + public long id; + + String blockId; + String deleted;//閫昏緫鍒犻櫎鏍囪瘑 + String divideId;//string + String lat;//缁忓害 + String lng;//绾害 + String name;//鍙栨按鍙e悕绉� + String operateDt;//鎿嶄綔鏃堕棿 + String operator;//鎿嶄綔浜虹紪鍙� + String remarks;//澶囨敞 + String townId;//鎵�鍦ㄩ晣缂栧彿 + String villageId;//鎵�鍦ㄦ潙缂栧彿 + String countyId;//鎵�鍦ㄥ幙缂栧彿 + + public String getBlockId() { + return blockId; + } + + public void setBlockId(String blockId) { + this.blockId = blockId; + } + + public String getDeleted() { + return deleted; + } + + public void setDeleted(String deleted) { + this.deleted = deleted; + } + + public String getDivideId() { + return divideId; + } + + public void setDivideId(String divideId) { + this.divideId = divideId; + } + + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getOperateDt() { + return operateDt; + } + + public void setOperateDt(String operateDt) { + this.operateDt = operateDt; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getRemarks() { + return remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks; + } + + public String getTownId() { + return townId; + } + + public void setTownId(String townId) { + this.townId = townId; + } + + public String getVillageId() { + return villageId; + } + + public void setVillageId(String villageId) { + this.villageId = villageId; + } + + public String getCountyId() { + return countyId; + } + + public void setCountyId(String countyId) { + this.countyId = countyId; + } +} diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/MarkerResult.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/MarkerResult.java new file mode 100644 index 0000000..57ee3ff --- /dev/null +++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/MarkerResult.java @@ -0,0 +1,182 @@ +package com.dayu.pipirrapp.bean.net; + +import java.util.List; + +/** + * author; zuo + * Date; 2024-09-20 + * Time; 14;12 + * 澶囨敞锛� + */ +public class MarkerResult extends BaseResult { + int itemTotal; + int pageCurr; + int pageSize; + int pageTotal; + List<Obj> obj; + + public int getItemTotal() { + return itemTotal; + } + + public void setItemTotal(int itemTotal) { + this.itemTotal = itemTotal; + } + + public int getPageCurr() { + return pageCurr; + } + + public void setPageCurr(int pageCurr) { + this.pageCurr = pageCurr; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPageTotal() { + return pageTotal; + } + + public void setPageTotal(int pageTotal) { + this.pageTotal = pageTotal; + } + + public List<Obj> getObj() { + return obj; + } + + public void setObj(List<Obj> obj) { + this.obj = obj; + } + + public class Obj { + String blockId; + + String deleted;//閫昏緫鍒犻櫎鏍囪瘑 + String divideId;//string + + String id; + String lat;//缁忓害 + String lng;//绾害 + + String name;//鍙栨按鍙e悕绉� + + String operateDt;//鎿嶄綔鏃堕棿 + String operator;//鎿嶄綔浜虹紪鍙� + String remarks;//澶囨敞 + String townId;//鎵�鍦ㄩ晣缂栧彿 + String villageId;//鎵�鍦ㄦ潙缂栧彿 + String countyId;//鎵�鍦ㄥ幙缂栧彿 + + public String getBlockId() { + return blockId; + } + + public void setBlockId(String blockId) { + this.blockId = blockId; + } + + public String getDeleted() { + return deleted; + } + + public void setDeleted(String deleted) { + this.deleted = deleted; + } + + public String getDivideId() { + return divideId; + } + + public void setDivideId(String divideId) { + this.divideId = divideId; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getOperateDt() { + return operateDt; + } + + public void setOperateDt(String operateDt) { + this.operateDt = operateDt; + } + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + + public String getRemarks() { + return remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks; + } + + public String getTownId() { + return townId; + } + + public void setTownId(String townId) { + this.townId = townId; + } + + public String getVillageId() { + return villageId; + } + + public void setVillageId(String villageId) { + this.villageId = villageId; + } + + public String getCountyId() { + return countyId; + } + + public void setCountyId(String countyId) { + this.countyId = countyId; + } + } + +} diff --git a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java index e4c7378..7c122e4 100644 --- a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java +++ b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java @@ -17,9 +17,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.dayu.pipirrapp.MyApplication; import com.dayu.pipirrapp.bean.db.CenterPointBean; import com.dayu.pipirrapp.bean.net.CenterPointResult; +import com.dayu.pipirrapp.bean.net.MarkerResult; import com.dayu.pipirrapp.dao.DaoSingleton; import com.dayu.pipirrapp.databinding.FragmentMapBinding; import com.dayu.pipirrapp.js.MyWebViewInterface; @@ -37,8 +37,6 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; -import java.util.HashMap; -import java.util.Map; import java.util.Random; /** @@ -56,6 +54,7 @@ WebView mWebView; CenterPointBean centerPointBean; + String jsonData; @Override public void onAttach(@NonNull Context context) { @@ -81,6 +80,8 @@ mWebView.loadUrl("file:///android_asset/index.html"); getCenterPoint(); initView(); + initData(); + getMarkerData(); //寮�鍚畾浣� // Intent location = new Intent(this.getActivity(), MyLocationService.class); // location.putExtra("isSingle", false); @@ -89,10 +90,64 @@ } private void initData() { - centerPointBean = DaoSingleton.getInstance(MapFragment.this.getContext()).centerPointDao().findFirst(); - if (centerPointBean!=null){ + jumpCenterPoint(); + } + /** + * 璺宠浆鍦板浘涓績鐐� + */ + public void jumpCenterPoint() { + + centerPointBean = DaoSingleton.getInstance(MapFragment.this.getContext()).centerPointDao().findFirst(); + if (centerPointBean != null) { + Log.d(TAG, "jumpCenterPoint>>>>>>>>>>>>>>>>>>>" + centerPointBean.getLng() + "\",\"" + centerPointBean.getLat()); + mWebView.evaluateJavascript("javascript:setCenterAndZoom(\"" + centerPointBean.getLng() + "\",\"" + centerPointBean.getLat() + "\")", value -> { + }); } + } + + public void setMapMarker(){ + Log.i("mWebView", "addMarker????????????" + jsonData); + mWebView.evaluateJavascript("javascript:addMarker(\"" + jsonData + "\")", new ValueCallback<String>() { + @Override + public void onReceiveValue(String value) { + Log.i("mWebView", "addMarker锛侊紒锛侊紒锛侊紒锛侊紒锛�" + value); + } + }); + } + + + + private void getMarkerData() { + ApiManager.getInstance().requestGet(this.getContext(), Constants.BASE_URL + ":8085/project/intake/all", MarkerResult.class, null, new SubscriberListener<BaseResponse<MarkerResult>>() { + @Override + public void onNext(BaseResponse<MarkerResult> t) { + if (t.isSuccess()) { + if (t.isSuccess()) { + if (t.getContent().getObj() != null && !t.getContent().getObj().isEmpty()) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append("["); + for (int i = 0; i < t.getContent().getObj().size(); i++) { + stringBuilder.append("["); + stringBuilder.append(t.getContent().getObj().get(i).getLng()); + stringBuilder.append(","); + stringBuilder.append(t.getContent().getObj().get(i).getLat()); + stringBuilder.append(",\"" + t.getContent().getObj().get(i).getName() + "\"]"); + if (i != t.getContent().getObj().size() - 1) { + stringBuilder.append(","); + } + } + stringBuilder.append("]"); + jsonData = stringBuilder.toString().replace("\\", "\\\\").replace("\"", "\\\""); + + } + } + } else { + ToastUtil.showToast(MapFragment.this.getContext(), t.getMsg()); + } + } + + }); } @@ -123,7 +178,6 @@ } stringBuilder.append("[116.417854,39.921988,\"235鍙栨按鍙"]]"); String jsonData = stringBuilder.toString().replace("\\", "\\\\").replace("\"", "\\\""); -// String jsonData = "[[116.417854,39.921988,\"235鍙栨按鍙"],[116.406605,39.921585,\"237鍙栨按鍙"],[116.412222,39.912345,\"236鍙栨按鍙"]]"; Log.i("mWebView", "addMarker????????????" + jsonData); mWebView.evaluateJavascript("javascript:addMarker(\"" + jsonData + "\")", new ValueCallback<String>() { @Override @@ -132,7 +186,6 @@ } }); } - @Override public void onResume() { @@ -228,10 +281,8 @@ * 鑾峰彇鍦板浘涓績鐐� */ private void getCenterPoint() { - Map<String, Object> data = new HashMap<>(); - data.put("token", MyApplication.myApplication.token); - ApiManager.getInstance().requestGet(this.getContext(), Constants.SUCCESS + "8080/base/dict_item/map_center", CenterPointResult.class, data, new SubscriberListener<BaseResponse<CenterPointResult>>() { + ApiManager.getInstance().requestGet(this.getContext(), Constants.BASE_URL + ":8080/base/dict_item/map_center", CenterPointResult.class, null, new SubscriberListener<BaseResponse<CenterPointResult>>() { @Override public void onNext(BaseResponse<CenterPointResult> t) { if (t.isSuccess()) { @@ -240,7 +291,8 @@ } centerPointBean.setLat(t.getContent().getLat()); centerPointBean.setLng(t.getContent().getLng()); - DaoSingleton.getInstance(MapFragment.this.getContext()).centerPointDao().update(centerPointBean); + DaoSingleton.getInstance(MapFragment.this.getContext()).centerPointDao().insert(centerPointBean); + jumpCenterPoint(); } else { ToastUtil.showToast(MapFragment.this.getContext(), t.getMsg()); } diff --git a/app/src/main/java/com/dayu/pipirrapp/js/MyWebViewInterface.java b/app/src/main/java/com/dayu/pipirrapp/js/MyWebViewInterface.java index 56fb79b..67c87de 100644 --- a/app/src/main/java/com/dayu/pipirrapp/js/MyWebViewInterface.java +++ b/app/src/main/java/com/dayu/pipirrapp/js/MyWebViewInterface.java @@ -29,6 +29,7 @@ /** * 鏄剧ず鍙栨按鍙h鎯� + * * @param data */ @JavascriptInterface @@ -48,7 +49,6 @@ /** * 闅愯棌鍙栨按鍙h鎯� - * */ @JavascriptInterface public void closeWaterIntakeView() { @@ -66,21 +66,20 @@ } @JavascriptInterface - public void loadMarker(){ + public void loadMarker() { if (myContext instanceof MapFragment) { new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { // 鍦ㄤ富绾跨▼涓婃墽琛孶I鎿嶄綔 // 鏇存柊鎴栨搷浣淯I鍏冪礌鐨勪唬鐮� - myContext.addMarker(); +// myContext.addMarker(); + myContext.jumpCenterPoint(); + myContext.setMapMarker(); } }); } } - - - } diff --git a/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java b/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java index 9bf38c8..3ff5033 100644 --- a/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java +++ b/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java @@ -1,8 +1,13 @@ package com.dayu.pipirrapp.net; import android.content.Context; +import android.net.ConnectivityManager; +import android.net.NetworkCapabilities; +import android.net.NetworkInfo; +import android.os.Build; import android.util.Log; +import com.dayu.pipirrapp.MyApplication; import com.dayu.pipirrapp.bean.net.CodeResult; import com.dayu.pipirrapp.bean.net.WeatherResponse; import com.dayu.pipirrapp.net.subscribers.BaseProgressSubscriber; @@ -97,10 +102,9 @@ if (isGet) { if (params == null) { - observable = apiService.requestGet(path); + observable = apiService.requestGet(path, MyApplication.myApplication.token); } else { - - observable = apiService.requestGet(path, params); + observable = apiService.requestGet(path, params, MyApplication.myApplication.token); } } else { observable = apiService.requestPost(path, params); @@ -182,21 +186,27 @@ /** * 鑾峰彇楠岃瘉鐮� + * * @param params * @param listener * @param <T> */ - public <T> void getCode( Map<String, Object> params, CodeListener listener) { - Observable observable; - observable = apiService.getCode(params); - observable.subscribeOn(Schedulers.io()) - .unsubscribeOn(Schedulers.newThread()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(responseBody -> { - listener.onNext((CodeResult) responseBody); - }, throwable -> { - listener.error((Throwable) throwable); - }); + public <T> void getCode(Map<String, Object> params, CodeListener listener) { + if (isNetworkAvailable(MyApplication.myApplication)) { + Observable observable; + observable = apiService.getCode(params); + observable.subscribeOn(Schedulers.io()) + .unsubscribeOn(Schedulers.newThread()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(responseBody -> { + listener.onNext((CodeResult) responseBody); + }, throwable -> { + listener.error((Throwable) throwable); + }); + } else { + listener.onNext(null); + } + } @@ -241,4 +251,35 @@ } } + /** + * 鍒ゆ柇褰撳墠鏄惁鏈夌綉缁� + * + * @param context + * @return + */ + public boolean isNetworkAvailable(Context context) { + ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + + if (connectivityManager != null) { + // 瀵逛簬 Android 鐗堟湰澶т簬绛変簬 Android Q (API level 29) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork()); + if (capabilities != null) { + // 妫�鏌ョ綉缁滄槸鍚︽湁浼犺緭鑳藉姏锛堝寘鎷� Wi-Fi 鍜岀Щ鍔ㄦ暟鎹級 + if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) || capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) { + return true; + } + } + } else { + // 瀵逛簬 Android Q 浠ヤ笅鐗堟湰 + NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); + if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) { + return true; + } + } + } + + return false; // 鏃犵綉缁滆繛鎺� + } + } \ No newline at end of file diff --git a/app/src/main/java/com/dayu/pipirrapp/net/ApiService.java b/app/src/main/java/com/dayu/pipirrapp/net/ApiService.java index 73eb9ff..3e73681 100644 --- a/app/src/main/java/com/dayu/pipirrapp/net/ApiService.java +++ b/app/src/main/java/com/dayu/pipirrapp/net/ApiService.java @@ -13,11 +13,11 @@ import retrofit2.Call; import retrofit2.http.Body; import retrofit2.http.GET; +import retrofit2.http.Header; import retrofit2.http.Multipart; import retrofit2.http.POST; import retrofit2.http.Part; import retrofit2.http.PartMap; -import retrofit2.http.Path; import retrofit2.http.QueryMap; import retrofit2.http.Streaming; import retrofit2.http.Url; @@ -40,11 +40,14 @@ @POST() Observable<BaseResponse> requestPost(@Url String url, @Body Map<String, Object> params); - @GET("{url}") - Observable<BaseResponse> requestGet(@Path("url") String url, @QueryMap Map<String, Object> params); + @GET() + Observable<BaseResponse> requestGet(@Url String url, @QueryMap Map<String, Object> params,@Header("token") String token); - @GET("{url}") - Observable<BaseResponse> requestGet(@Path("url") String url); + @GET() + Observable<BaseResponse> requestGet(@Url String url); + + @GET() + Observable<BaseResponse> requestGet(@Url String url, @Header("token") String token); @Streaming @GET() diff --git a/app/src/main/java/com/dayu/pipirrapp/net/MyIntercepterApplication.java b/app/src/main/java/com/dayu/pipirrapp/net/MyIntercepterApplication.java index cc1a62d..bc2fba6 100644 --- a/app/src/main/java/com/dayu/pipirrapp/net/MyIntercepterApplication.java +++ b/app/src/main/java/com/dayu/pipirrapp/net/MyIntercepterApplication.java @@ -70,7 +70,7 @@ builder.addHeader("os", "app"); builder.addHeader("Authorization", SharedPreferencesHelper.getInstance(MyApplication.myApplication).get("token", "")); } - builder.addHeader("tag", CommonData.Tag); + builder.addHeader("tag", MyApplication.myApplication.myTag); return builder.build(); } catch (Exception e) { e.printStackTrace(); diff --git a/app/src/main/java/com/dayu/pipirrapp/utils/CommonData.java b/app/src/main/java/com/dayu/pipirrapp/utils/CommonData.java index 03edee5..98e46b0 100644 --- a/app/src/main/java/com/dayu/pipirrapp/utils/CommonData.java +++ b/app/src/main/java/com/dayu/pipirrapp/utils/CommonData.java @@ -12,8 +12,6 @@ public static String androidKey = "4dace6fd6dad43a9bc08d1ed94ec28d8"; //缂撳瓨 - - public static String Tag = "ym"; public final static String Token = "Token"; public final static String isShowCode="isShowCode"; diff --git a/app/src/main/java/com/dayu/pipirrapp/view/TagDialog.java b/app/src/main/java/com/dayu/pipirrapp/view/TagDialog.java index b4b038b..3114677 100644 --- a/app/src/main/java/com/dayu/pipirrapp/view/TagDialog.java +++ b/app/src/main/java/com/dayu/pipirrapp/view/TagDialog.java @@ -12,6 +12,7 @@ import android.widget.TextView; +import com.dayu.pipirrapp.MyApplication; import com.dayu.pipirrapp.R; import com.dayu.pipirrapp.bean.db.TagBean; import com.dayu.pipirrapp.dao.DaoSingleton; @@ -61,7 +62,7 @@ // 褰撻�変腑鐨凴adioButton鍙戠敓鍙樺寲鏃惰皟鐢� if (checkedId == R.id.testLibrary) { type = CommonData.TestTag; - tagBean.setTag("ym"); + tagBean.setTag("test"); data = "纭閫夋嫨娴嬭瘯鐗堟湰鍚楋紵"; } else if (checkedId == R.id.yuanmouLibrary) {// 澶勭悊閫変腑Option 2鐨勯�昏緫 type = CommonData.YuanMouTag; @@ -76,6 +77,7 @@ confirmDialog = new ConfirmDialog(mContext, data, new View.OnClickListener() { @Override public void onClick(View v) { + MyApplication.myApplication.myTag = tagBean.getTag(); tagDao.insert(tagBean); mLibraryBack.listener(type); TagDialog.this.dismiss(); -- Gitblit v1.8.0