From 3df944d30530be8dc0ea1cbe1ed4afc22eb160a5 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 06 二月 2025 11:09:48 +0800
Subject: [PATCH] 1.添加数据更新功能,确保本地没有数据时再获取基础数据 2.地图界面上添加滚动功能的控件(部分功能)

---
 app/src/main/java/com/dayu/pipirrapp/utils/NetUtils.java |   57 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 43 insertions(+), 14 deletions(-)

diff --git a/app/src/main/java/com/dayu/pipirrapp/utils/NetUtils.java b/app/src/main/java/com/dayu/pipirrapp/utils/NetUtils.java
index cbb1d8a..ed4ba2b 100644
--- a/app/src/main/java/com/dayu/pipirrapp/utils/NetUtils.java
+++ b/app/src/main/java/com/dayu/pipirrapp/utils/NetUtils.java
@@ -2,10 +2,15 @@
 
 import android.content.Context;
 import android.net.ConnectivityManager;
+import android.net.Network;
 import android.net.NetworkCapabilities;
 import android.net.NetworkInfo;
 import android.net.NetworkRequest;
 import android.os.Build;
+
+import androidx.annotation.NonNull;
+
+import com.jeremyliao.liveeventbus.LiveEventBus;
 
 /**
  * NetUtils - 缃戠粶鐩稿叧鍏叡鏂规硶
@@ -16,6 +21,10 @@
  */
 public class NetUtils {
     public static final String TAG = "NetUtils";
+    //鏈夌綉
+    public static final int Available = 1;
+    //鏃犵綉
+    public static final int Lost = 2;
 
     /**
      * 鍒ゆ柇褰撳墠鏄惁鏈夌綉缁�
@@ -49,32 +58,52 @@
     }
 
 
-    public static void registerNetCallBack(Context context, ConnectivityManager.NetworkCallback networkCallback) {
+    public static void registerNetCallBack(Context context) {
+        MyLog.d("registerNetCallBack");
         // 娉ㄥ唽缃戠粶鐘舵�佺洃鍚�
-
         ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
 
         // 鏋勫缓涓�涓� NetworkRequest锛屾寚瀹氭劅鍏磋叮鐨勭綉缁滅被鍨�
         NetworkRequest networkRequest = new NetworkRequest.Builder()
-
+                .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
+                .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) // 鐩戝惉 Wi-Fi 缃戠粶
+                .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)//// 鐩戝惉绉诲姩鏁版嵁缃戠粶
                 .build();
-
-        // 缃戠粶鍥炶皟
-
-
         // 娉ㄥ唽缃戠粶鐩戝惉
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
-            cm.registerNetworkCallback(networkRequest, networkCallback);
-        } else {
-            // 瀵逛簬杈冭�佺増鏈紝鍙互浣跨敤鏃х殑鏂规硶娉ㄥ唽缃戠粶鐘舵�佺洃鍚�
-            // ConnectivityManager.setNetworkCallback() 鏃犳硶鍦� API 绾у埆 24 浠ヤ笅浣跨敤
-        }
+
+        cm.registerNetworkCallback(networkRequest, networkCallback);
+
     }
 
     // 娉ㄩ攢骞挎挱鎺ユ敹鍣�
-    public static void unregisterReceiver(Context context,ConnectivityManager.NetworkCallback networkCallback) {
+    public static void unregisterReceiver(Context context) {
+        MyLog.d("unregisterReceiver");
         ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
         cm.unregisterNetworkCallback(networkCallback);
     }
 
+    //缃戠粶鐩戞帶
+    static ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
+        @Override
+        public void onAvailable(@NonNull Network network) {
+            super.onAvailable(network);
+            // 杩欓噷鍙互鎵ц缃戠粶鍙敤鍚庣殑閫昏緫锛屾瘮濡傝繘琛屾暟鎹姹傜瓑
+            MyLog.d("networkCallback銆媜nAvailable");
+            LiveEventBus.get(CommonKeyName.NetworkCallback).post(Available);
+        }
+
+        @Override
+        public void onLost(@NonNull Network network) {
+            super.onLost(network);
+            // 杩欓噷鍙互鎵ц缃戠粶涓㈠け鍚庣殑閫昏緫锛屾瘮濡傚仠姝㈡暟鎹姹傜瓑
+            MyLog.d("networkCallback銆媜nLost");
+            LiveEventBus.get(CommonKeyName.NetworkCallback).post(Lost);
+        }
+
+        @Override
+        public void onCapabilitiesChanged(@NonNull Network network, @NonNull NetworkCapabilities networkCapabilities) {
+            super.onCapabilitiesChanged(network, networkCapabilities);
+            MyLog.d("networkCallback銆媜nCapabilitiesChanged");
+        }
+    };
 }

--
Gitblit v1.8.0