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/net/ApiManager.java |   69 +++++++++++++++++++++++++++-------
 1 files changed, 55 insertions(+), 14 deletions(-)

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

--
Gitblit v1.8.0