From caa8608f5270ffd4733b43e0676af9747a852c66 Mon Sep 17 00:00:00 2001 From: Godfather <981964879@qq.com> Date: Tue, 19 Apr 2022 20:59:38 +0800 Subject: [PATCH] =?UTF-8?q?version:4.3=20fix:=E4=BC=98=E5=8C=96=20update:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sn/network/NetInterfaceManager.java | 9 ++-- .../com/aoleyun/sn/utils/NetworkUtils.java | 46 ++++++++++++++++++- .../java/com/aoleyun/sn/utils/TimeUtils.java | 2 +- 3 files changed, 51 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java index 7dda798..793b78d 100644 --- a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java +++ b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java @@ -212,6 +212,7 @@ public class NetInterfaceManager { return chain.proceed(request); } }; + //如果无法生存缓存文件目录,检测权限使用已经加上,检测手机是否把文件读写权限禁止了 OkHttpClient.Builder builder = new OkHttpClient.Builder(); builder.connectTimeout(timeOut, TimeUnit.SECONDS); // 设置连接超时时间 @@ -598,16 +599,16 @@ public class NetInterfaceManager { void onComplete(); } - public interface onCompleteCallback { - void onComplete(); - } - public interface onSuccessfulCallback { void onSuccessful(); void onComplete(); } + public interface onCompleteCallback { + void onComplete(); + } + synchronized public void checkAoleyunUpdate(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { ConnectMode connectMode = ConnectMode.SIX_HOUR; if (refresh) { diff --git a/app/src/main/java/com/aoleyun/sn/utils/NetworkUtils.java b/app/src/main/java/com/aoleyun/sn/utils/NetworkUtils.java index 7f3b8fe..2de25fd 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/NetworkUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/NetworkUtils.java @@ -6,12 +6,13 @@ import android.net.ConnectivityManager; import android.net.NetworkCapabilities; import android.net.NetworkInfo; import android.os.Build; +import android.telephony.TelephonyManager; import android.util.Log; public class NetworkUtils { public static boolean isConnected(Context context) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - if (Build.VERSION.SDK_INT >= 23) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //获取网络属性 NetworkCapabilities networkCapabilities = mConnectivityManager.getNetworkCapabilities(mConnectivityManager.getActiveNetwork()); if (networkCapabilities != null) { @@ -26,4 +27,47 @@ public class NetworkUtils { } return false; } + + + public String getNetworkType(Context context) { + String strNetworkType = "UnKnown"; + final NetworkInfo activeNetworkInfo = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); + if (activeNetworkInfo != null && activeNetworkInfo.getType() == 1) { + strNetworkType = "WIFI"; + } else if (activeNetworkInfo != null && activeNetworkInfo.getType() == 0) { + String subtypeName = activeNetworkInfo.getSubtypeName(); + switch (((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getNetworkType()) { + case TelephonyManager.NETWORK_TYPE_GPRS: + case TelephonyManager.NETWORK_TYPE_EDGE: + case TelephonyManager.NETWORK_TYPE_CDMA: + case TelephonyManager.NETWORK_TYPE_1xRTT: + case TelephonyManager.NETWORK_TYPE_IDEN: //api<8 : replace by 11 + strNetworkType = "2G"; + break; + case TelephonyManager.NETWORK_TYPE_UMTS: + case TelephonyManager.NETWORK_TYPE_EVDO_0: + case TelephonyManager.NETWORK_TYPE_EVDO_A: + case TelephonyManager.NETWORK_TYPE_HSDPA: + case TelephonyManager.NETWORK_TYPE_HSUPA: + case TelephonyManager.NETWORK_TYPE_HSPA: + case TelephonyManager.NETWORK_TYPE_EVDO_B: //api<9 : replace by 14 + case TelephonyManager.NETWORK_TYPE_EHRPD: //api<11 : replace by 12 + case TelephonyManager.NETWORK_TYPE_HSPAP: //api<13 : replace by 15 + strNetworkType = "3G"; + break; + case TelephonyManager.NETWORK_TYPE_LTE: + strNetworkType = "4G"; + break; + default: + if ("TD-SCDMA".equalsIgnoreCase(subtypeName) || "WCDMA".equalsIgnoreCase(subtypeName) || "CDMA2000".equalsIgnoreCase(subtypeName)) { + strNetworkType = "3G"; + break; + } + strNetworkType = subtypeName; + break; + } + } + return strNetworkType; + } + } diff --git a/app/src/main/java/com/aoleyun/sn/utils/TimeUtils.java b/app/src/main/java/com/aoleyun/sn/utils/TimeUtils.java index 30d48fd..8fff4db 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/TimeUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/TimeUtils.java @@ -284,7 +284,7 @@ public class TimeUtils { long now = mNtpClient.getNtpTime();//now就是获取的时间 return now; } else { - Log.e("getTimeFromNtpServer", " failed"); + Log.e("getTimeFromNtpServer", " failed"); } return -1; }