18034727885
2026-06-13 50d25d0b1d23f5c33b7cb32ae60e60e5327f5e9d
修复问题
5个文件已修改
430 ■■■■■ 已修改文件
app/src/main/java/com/liuzhou/callcar/driver/pad/base/MyApplication.kt 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/liuzhou/callcar/driver/pad/slab/MySlabBaseActivity.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetStateReceiver.java 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xldUtils/src/main/java/cn/sinata/xldutils/netstatus/NetStateReceiver.java 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/liuzhou/callcar/driver/pad/base/MyApplication.kt
@@ -356,10 +356,10 @@
                }
            }
            set(value) {
//                value?.apply {
//                    latitude = 30.59
//                    longitude = 104.06
//                }
                value?.apply {
                    latitude = 30.59
                    longitude = 104.06
                }
                field = value
                CacheKey.putKeyStr("location", if (value == null) "" else Gson().toJson(value))
            }
app/src/main/java/com/liuzhou/callcar/driver/pad/slab/MySlabBaseActivity.java
@@ -1,5 +1,9 @@
package com.liuzhou.callcar.driver.pad.slab;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static cn.sinata.xldutils.utils.UtilKtKt.toast;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
@@ -25,13 +29,13 @@
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import com.github.zackratos.ultimatebar.UltimateBar;
import com.google.gson.Gson;
import com.liuzhou.callcar.driver.pad.R;
import com.liuzhou.callcar.driver.pad.base.BaseEvent;
import com.liuzhou.callcar.driver.pad.base.MoneyBroadCastReceiver;
import com.liuzhou.callcar.driver.pad.base.MyApplication;
import com.liuzhou.callcar.driver.pad.slab.util.DialogUtil;
import com.github.zackratos.ultimatebar.UltimateBar;
import com.google.gson.Gson;
import com.liuzhou.callcar.driver.pad.utils.EasePopup.EasyPopup;
import com.liuzhou.callcar.driver.pad.utils.MyUtils;
@@ -45,10 +49,6 @@
import cn.sinata.xldutils.netstatus.NetUtils;
import cn.sinata.xldutils.utils.UtilKtKt;
import pub.devrel.easypermissions.EasyPermissions;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static cn.sinata.xldutils.utils.UtilKtKt.toast;
/**
 * Created by Administrator on 2018/1/16.
@@ -75,6 +75,7 @@
    Intent intent;
    public Gson gson;
    public EasyPopup easyPopup;
    private boolean isNetworkConnected = true;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -99,12 +100,20 @@
    @Override
    protected void onNetworkConnected(NetUtils.NetType type) {
        super.onNetworkConnected(type);
        if (NetUtils.isNetworkConnected(MyApplication.Companion.getInstance())) {
        boolean networkConnected = NetUtils.isNetworkConnected(MyApplication.Companion.getInstance());
        if (!isNetworkConnected && networkConnected) {
            isNetworkConnected = true;
            toast("网络重新通畅");
            MoneyBroadCastReceiver.Companion.callErrorOrder(this);
        }
    }
    @Override
    protected void onNetworkDisConnected() {
        super.onNetworkDisConnected();
        isNetworkConnected = false;
    }
    //    Handler heartHandler;
    private void settest() {
//        tv_test.setVisibility(VISIBLE);
rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java
@@ -128,6 +128,11 @@
        init();
        NetStateReceiver.registerNetworkStateReceiver(this);
        // 服务重复启动时先移除旧观察者,避免重复重连回调 由AI生成
        if (mNetChangeObserver != null) {
            // 从网络监听器移除旧观察者实例 由AI生成
            NetStateReceiver.removeRegisterObserver(mNetChangeObserver);
        }
        mNetChangeObserver = new NetChangeObserver() {
            @Override
            public void onNetConnected(NetUtils.NetType type) {
@@ -179,6 +184,8 @@
    public void onDestroy() {
        super.onDestroy();
        isDestroy = true;
        // 服务销毁时移除网络观察者,避免静态列表持有 Service 引用 由AI生成
        NetStateReceiver.removeRegisterObserver(mNetChangeObserver);
        NetStateReceiver.unRegisterNetworkStateReceiver(this);
        if (subscriber != null && !subscriber.isUnsubscribed()) {
            subscriber.unsubscribe();
rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetStateReceiver.java
@@ -4,8 +4,18 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import androidx.annotation.RequiresApi;
import java.util.ArrayList;
import java.util.List;
/**
 *网络状态监听
@@ -18,6 +28,14 @@
    private static NetUtils.NetType mNetType;
    private static ArrayList<NetChangeObserver> mNetChangeObservers = new ArrayList<>();
    private static BroadcastReceiver mBroadcastReceiver;
    // 保存应用级上下文,避免服务上下文被静态监听器长期持有 由AI生成
    private static Context mAppContext;
    // 记录注册次数,防止重复启动服务时重复注册网络监听 由AI生成
    private static int mRegisterCount = 0;
    // 网络回调对象用于 Android 5.0 及以上系统监听网络变化 由AI生成
    private static ConnectivityManager.NetworkCallback mNetworkCallback;
    // 主线程 Handler 用于把网络回调分发回稳定线程 由AI生成
    private static final Handler MAIN_HANDLER = new Handler(Looper.getMainLooper());
    private static BroadcastReceiver getReceiver() {
        if (null == mBroadcastReceiver) {
@@ -35,33 +53,64 @@
        mBroadcastReceiver = NetStateReceiver.this;
        if (intent.getAction().equalsIgnoreCase(ANDROID_NET_CHANGE_ACTION) || intent.getAction().equalsIgnoreCase(CUSTOM_ANDROID_NET_CHANGE_ACTION)) {
//            Utils.systemErr("111111111");
            if (!NetUtils.isNetworkAvailable(context)) {
                isNetAvailable = false;
            } else {
                isNetAvailable = true;
                mNetType = NetUtils.getAPNType(context);
            }
            updateNetworkState(context);
            notifyObserver();
        }
    }
    public static void registerNetworkStateReceiver(Context mContext) {
        if (mContext == null) {
            return;
        }
        mAppContext = mContext.getApplicationContext();
        if (mRegisterCount++ > 0) {
            updateNetworkState(mAppContext);
            return;
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            registerNetworkCallback(mAppContext);
        } else {
        IntentFilter filter = new IntentFilter();
        filter.addAction(CUSTOM_ANDROID_NET_CHANGE_ACTION);
        filter.addAction(ANDROID_NET_CHANGE_ACTION);
        mContext.getApplicationContext().registerReceiver(getReceiver(), filter);
            mAppContext.registerReceiver(getReceiver(), filter);
        }
        updateNetworkState(mAppContext);
    }
    public static void checkNetworkState(Context mContext) {
        Intent intent = new Intent();
        intent.setAction(CUSTOM_ANDROID_NET_CHANGE_ACTION);
        mContext.sendBroadcast(intent);
        if (mContext == null) {
            return;
        }
        updateNetworkState(mContext);
        notifyObserver();
    }
    public static void unRegisterNetworkStateReceiver(Context mContext) {
        if (mContext == null || mRegisterCount <= 0) {
            return;
        }
        mRegisterCount--;
        if (mRegisterCount > 0) {
            return;
        }
        Context appContext = mContext.getApplicationContext();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && mNetworkCallback != null) {
            try {
                ConnectivityManager connectivityManager = (ConnectivityManager) appContext.getSystemService(Context.CONNECTIVITY_SERVICE);
                if (connectivityManager != null) {
                    connectivityManager.unregisterNetworkCallback(mNetworkCallback);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                mNetworkCallback = null;
            }
            return;
        }
        if (mBroadcastReceiver != null) {
            try {
                mContext.getApplicationContext().unregisterReceiver(mBroadcastReceiver);
                appContext.unregisterReceiver(mBroadcastReceiver);
            } catch (Exception e) {
                e.printStackTrace();
            }
@@ -77,11 +126,10 @@
        return mNetType;
    }
    private void notifyObserver() {
    private static void notifyObserver() {
        if (!mNetChangeObservers.isEmpty()) {
            int size = mNetChangeObservers.size();
            for (int i = 0; i < size; i++) {
                NetChangeObserver observer = mNetChangeObservers.get(i);
            List<NetChangeObserver> observers = new ArrayList<>(mNetChangeObservers);
            for (NetChangeObserver observer : observers) {
                if (observer != null) {
                    if (isNetworkAvailable()) {
                        observer.onNetConnected(mNetType);
@@ -97,7 +145,9 @@
        if (mNetChangeObservers == null) {
            mNetChangeObservers = new ArrayList<>();
        }
        if (observer != null && !mNetChangeObservers.contains(observer)) {
        mNetChangeObservers.add(observer);
        }
    }
    public static void removeRegisterObserver(NetChangeObserver observer) {
@@ -107,4 +157,120 @@
            }
        }
    }
    // 注册系统网络回调以替代高版本系统上不可靠的 CONNECTIVITY_CHANGE 广播 由AI生成
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    private static void registerNetworkCallback(final Context context) {
        // 获取系统网络服务用于注册 NetworkCallback 由AI生成
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        // 网络服务为空时保持原有状态并直接返回 由AI生成
        if (connectivityManager == null) {
            return;
        }
        // 避免重复创建网络回调对象 由AI生成
        if (mNetworkCallback != null) {
            return;
        }
        // 创建网络变化回调对象 由AI生成
        mNetworkCallback = new ConnectivityManager.NetworkCallback() {
            // 网络可用时刷新当前网络状态 由AI生成
            @Override
            public void onAvailable(Network network) {
                // 切回主线程分发,避免回调线程不一致 由AI生成
                dispatchNetworkChanged(context);
            }
            // 网络能力变化时刷新当前网络状态 由AI生成
            @Override
            public void onCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities) {
                // 切回主线程分发最新联网能力 由AI生成
                dispatchNetworkChanged(context);
            }
            // 网络丢失时重新查询当前活动网络,兼容 Wi-Fi 与移动网络切换 由AI生成
            @Override
            public void onLost(Network network) {
                // 切回主线程后再通知观察者 由AI生成
                dispatchNetworkChanged(context);
            }
        };
        try {
            // 只监听具备互联网能力的网络,减少无效网络状态回调 由AI生成
            NetworkRequest request = new NetworkRequest.Builder().addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET).build();
            // 向系统注册网络变化回调 由AI生成
            connectivityManager.registerNetworkCallback(request, mNetworkCallback);
        } catch (Exception e) {
            // 注册失败时打印异常并回退到旧广播路径 由AI生成
            e.printStackTrace();
            // 清空失败的回调对象,避免后续注销不存在的系统回调 由AI生成
            mNetworkCallback = null;
            // 使用旧广播监听作为兜底方案 由AI生成
            registerLegacyReceiver(context);
        }
    }
    // 注册旧版网络广播监听作为低版本或异常兜底 由AI生成
    private static void registerLegacyReceiver(Context context) {
        // 创建网络广播过滤器 由AI生成
        IntentFilter filter = new IntentFilter();
        // 监听应用内部主动检查网络的广播 由AI生成
        filter.addAction(CUSTOM_ANDROID_NET_CHANGE_ACTION);
        // 监听系统网络变化广播 由AI生成
        filter.addAction(ANDROID_NET_CHANGE_ACTION);
        try {
            // 使用应用上下文注册广播,避免持有服务实例 由AI生成
            context.getApplicationContext().registerReceiver(getReceiver(), filter);
        } catch (Exception e) {
            // 注册失败时输出异常,避免影响长连接服务启动 由AI生成
            e.printStackTrace();
        }
    }
    // 刷新网络状态并通知所有观察者 由AI生成
    private static void dispatchNetworkChanged(final Context context) {
        // 主线程执行状态更新,保证观察者回调线程一致 由AI生成
        MAIN_HANDLER.post(new Runnable() {
            // 执行网络状态查询和分发 由AI生成
            @Override
            public void run() {
                // 根据系统当前网络刷新缓存状态 由AI生成
                updateNetworkState(context);
                // 把最新状态通知业务观察者 由AI生成
                notifyObserver();
            }
        });
    }
    // 根据当前系统网络刷新缓存状态 由AI生成
    private static void updateNetworkState(Context context) {
        // 上下文为空时标记为无网络 由AI生成
        if (context == null) {
            isNetAvailable = false;
            mNetType = NetUtils.NetType.NONE;
            return;
        }
        // Android 6.0 及以上优先用 NetworkCapabilities 判断真实互联网能力 由AI生成
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            ConnectivityManager connectivityManager = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
            if (connectivityManager == null) {
                isNetAvailable = false;
                mNetType = NetUtils.NetType.NONE;
                return;
            }
            Network activeNetwork = connectivityManager.getActiveNetwork();
            NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(activeNetwork);
            isNetAvailable = capabilities != null
                    && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
            mNetType = isNetAvailable ? NetUtils.getAPNType(context) : NetUtils.NetType.NONE;
            return;
        }
        // 旧系统保持原有 NetworkInfo 判断逻辑 由AI生成
        if (!NetUtils.isNetworkAvailable(context)) {
            isNetAvailable = false;
            mNetType = NetUtils.NetType.NONE;
        } else {
            isNetAvailable = true;
            mNetType = NetUtils.getAPNType(context);
        }
    }
}
xldUtils/src/main/java/cn/sinata/xldutils/netstatus/NetStateReceiver.java
@@ -4,10 +4,18 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import cn.sinata.xldutils.utils.Utils;
import androidx.annotation.RequiresApi;
import java.util.ArrayList;
import java.util.List;
/**
 *网络状态监听
@@ -20,6 +28,14 @@
    private static NetUtils.NetType mNetType;
    private static ArrayList<NetChangeObserver> mNetChangeObservers = new ArrayList<NetChangeObserver>();
    private static BroadcastReceiver mBroadcastReceiver;
    // 保存应用级上下文,避免页面上下文被静态监听器持有 由AI生成
    private static Context mAppContext;
    // 记录注册次数,防止多个页面互相注销同一个全局监听 由AI生成
    private static int mRegisterCount = 0;
    // 网络回调对象用于 Android 5.0 及以上系统监听网络变化 由AI生成
    private static ConnectivityManager.NetworkCallback mNetworkCallback;
    // 主线程 Handler 用于把网络回调分发回 UI 安全线程 由AI生成
    private static final Handler MAIN_HANDLER = new Handler(Looper.getMainLooper());
    private static BroadcastReceiver getReceiver() {
        if (null == mBroadcastReceiver) {
@@ -37,33 +53,64 @@
        mBroadcastReceiver = NetStateReceiver.this;
        if (intent.getAction().equalsIgnoreCase(ANDROID_NET_CHANGE_ACTION) || intent.getAction().equalsIgnoreCase(CUSTOM_ANDROID_NET_CHANGE_ACTION)) {
//            Utils.systemErr("111111111");
            if (!NetUtils.isNetworkAvailable(context)) {
                isNetAvailable = false;
            } else {
                isNetAvailable = true;
                mNetType = NetUtils.getAPNType(context);
            }
            updateNetworkState(context);
            notifyObserver();
        }
    }
    public static void registerNetworkStateReceiver(Context mContext) {
        if (mContext == null) {
            return;
        }
        mAppContext = mContext.getApplicationContext();
        if (mRegisterCount++ > 0) {
            updateNetworkState(mAppContext);
            return;
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            registerNetworkCallback(mAppContext);
        } else {
        IntentFilter filter = new IntentFilter();
        filter.addAction(CUSTOM_ANDROID_NET_CHANGE_ACTION);
        filter.addAction(ANDROID_NET_CHANGE_ACTION);
        mContext.registerReceiver(getReceiver(), filter);
            mAppContext.registerReceiver(getReceiver(), filter);
        }
        updateNetworkState(mAppContext);
    }
    public static void checkNetworkState(Context mContext) {
        Intent intent = new Intent();
        intent.setAction(CUSTOM_ANDROID_NET_CHANGE_ACTION);
        mContext.sendBroadcast(intent);
        if (mContext == null) {
            return;
        }
        updateNetworkState(mContext);
        notifyObserver();
    }
    public static void unRegisterNetworkStateReceiver(Context mContext) {
        if (mContext == null || mRegisterCount <= 0) {
            return;
        }
        mRegisterCount--;
        if (mRegisterCount > 0) {
            return;
        }
        Context appContext = mContext.getApplicationContext();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && mNetworkCallback != null) {
            try {
                ConnectivityManager connectivityManager = (ConnectivityManager) appContext.getSystemService(Context.CONNECTIVITY_SERVICE);
                if (connectivityManager != null) {
                    connectivityManager.unregisterNetworkCallback(mNetworkCallback);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                mNetworkCallback = null;
            }
            return;
        }
        if (mBroadcastReceiver != null) {
            try {
                mContext.unregisterReceiver(mBroadcastReceiver);
                appContext.unregisterReceiver(mBroadcastReceiver);
            } catch (Exception e) {
                e.printStackTrace();
            }
@@ -79,11 +126,10 @@
        return mNetType;
    }
    private void notifyObserver() {
    private static void notifyObserver() {
        if (!mNetChangeObservers.isEmpty()) {
            int size = mNetChangeObservers.size();
            for (int i = 0; i < size; i++) {
                NetChangeObserver observer = mNetChangeObservers.get(i);
            List<NetChangeObserver> observers = new ArrayList<NetChangeObserver>(mNetChangeObservers);
            for (NetChangeObserver observer : observers) {
                if (observer != null) {
                    if (isNetworkAvailable()) {
                        observer.onNetConnected(mNetType);
@@ -99,7 +145,9 @@
        if (mNetChangeObservers == null) {
            mNetChangeObservers = new ArrayList<NetChangeObserver>();
        }
        if (observer != null && !mNetChangeObservers.contains(observer)) {
        mNetChangeObservers.add(observer);
        }
    }
    public static void removeRegisterObserver(NetChangeObserver observer) {
@@ -109,4 +157,120 @@
            }
        }
    }
    // 注册系统网络回调以替代高版本系统上不可靠的 CONNECTIVITY_CHANGE 广播 由AI生成
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    private static void registerNetworkCallback(final Context context) {
        // 获取系统网络服务用于注册 NetworkCallback 由AI生成
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        // 网络服务为空时保持原有状态并直接返回 由AI生成
        if (connectivityManager == null) {
            return;
        }
        // 避免重复创建网络回调对象 由AI生成
        if (mNetworkCallback != null) {
            return;
        }
        // 创建网络变化回调对象 由AI生成
        mNetworkCallback = new ConnectivityManager.NetworkCallback() {
            // 网络可用时刷新当前网络状态 由AI生成
            @Override
            public void onAvailable(Network network) {
                // 切回主线程分发,避免页面回调在 Binder 线程更新 UI 由AI生成
                dispatchNetworkChanged(context);
            }
            // 网络能力变化时刷新当前网络状态 由AI生成
            @Override
            public void onCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities) {
                // 切回主线程分发最新联网能力 由AI生成
                dispatchNetworkChanged(context);
            }
            // 网络丢失时重新查询当前活动网络,兼容 Wi-Fi 与移动网络切换 由AI生成
            @Override
            public void onLost(Network network) {
                // 切回主线程后再通知观察者 由AI生成
                dispatchNetworkChanged(context);
            }
        };
        try {
            // 只监听具备互联网能力的网络,减少无效网络状态回调 由AI生成
            NetworkRequest request = new NetworkRequest.Builder().addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET).build();
            // 向系统注册网络变化回调 由AI生成
            connectivityManager.registerNetworkCallback(request, mNetworkCallback);
        } catch (Exception e) {
            // 注册失败时打印异常并回退到旧广播路径 由AI生成
            e.printStackTrace();
            // 清空失败的回调对象,避免后续注销不存在的系统回调 由AI生成
            mNetworkCallback = null;
            // 使用旧广播监听作为兜底方案 由AI生成
            registerLegacyReceiver(context);
        }
    }
    // 注册旧版网络广播监听作为低版本或异常兜底 由AI生成
    private static void registerLegacyReceiver(Context context) {
        // 创建网络广播过滤器 由AI生成
        IntentFilter filter = new IntentFilter();
        // 监听应用内部主动检查网络的广播 由AI生成
        filter.addAction(CUSTOM_ANDROID_NET_CHANGE_ACTION);
        // 监听系统网络变化广播 由AI生成
        filter.addAction(ANDROID_NET_CHANGE_ACTION);
        try {
            // 使用应用上下文注册广播,避免持有页面实例 由AI生成
            context.getApplicationContext().registerReceiver(getReceiver(), filter);
        } catch (Exception e) {
            // 注册失败时输出异常,避免影响业务启动 由AI生成
            e.printStackTrace();
        }
    }
    // 刷新网络状态并通知所有观察者 由AI生成
    private static void dispatchNetworkChanged(final Context context) {
        // 主线程执行状态更新,保证观察者回调线程一致 由AI生成
        MAIN_HANDLER.post(new Runnable() {
            // 执行网络状态查询和分发 由AI生成
            @Override
            public void run() {
                // 根据系统当前网络刷新缓存状态 由AI生成
                updateNetworkState(context);
                // 把最新状态通知业务观察者 由AI生成
                notifyObserver();
            }
        });
    }
    // 根据当前系统网络刷新缓存状态 由AI生成
    private static void updateNetworkState(Context context) {
        // 上下文为空时标记为无网络 由AI生成
        if (context == null) {
            isNetAvailable = false;
            mNetType = NetUtils.NetType.NONE;
            return;
        }
        // Android 6.0 及以上优先用 NetworkCapabilities 判断真实互联网能力 由AI生成
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            ConnectivityManager connectivityManager = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
            if (connectivityManager == null) {
                isNetAvailable = false;
                mNetType = NetUtils.NetType.NONE;
                return;
            }
            Network activeNetwork = connectivityManager.getActiveNetwork();
            NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(activeNetwork);
            isNetAvailable = capabilities != null
                    && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
            mNetType = isNetAvailable ? NetUtils.getAPNType(context) : NetUtils.NetType.NONE;
            return;
        }
        // 旧系统保持原有 NetworkInfo 判断逻辑 由AI生成
        if (!NetUtils.isNetworkAvailable(context)) {
            isNetAvailable = false;
            mNetType = NetUtils.NetType.NONE;
        } else {
            isNetAvailable = true;
            mNetType = NetUtils.getAPNType(context);
        }
    }
}