杏彩体育 v1.0.1版本的 MD5 值为:f363e7619122f7bd90c8b2a2d9a7cb53
以下内容为反编译后的 NetworkUtil.java 源代码,内容仅作参考
package me.xtree.mvvmhabit.http;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.telephony.TelephonyManager;
import androidx.autofill.HintConstants;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.URL;
import java.util.Enumeration;
public class NetworkUtil {
public static int NET_CNNT_BAIDU_OK = 1;
public static int NET_CNNT_BAIDU_TIMEOUT = 2;
public static int NET_ERROR = 4;
public static int NET_NOT_PREPARE = 3;
private static int TIMEOUT = 3000;
public static String url = "http://www.baidu.com";
public static boolean isNetworkAvailable(Context context) {
NetworkInfo activeNetworkInfo;
ConnectivityManager connectivityManager = (ConnectivityManager) context.getApplicationContext().getSystemService("connectivity");
return (connectivityManager == null || (activeNetworkInfo = connectivityManager.getActiveNetworkInfo()) == null || !activeNetworkInfo.isAvailable()) ? false : true;
}
public static String getLocalIpAddress() {
String str = "";
try {
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements()) {
Enumeration<InetAddress> inetAddresses = networkInterfaces.nextElement().getInetAddresses();
while (inetAddresses.hasMoreElements()) {
InetAddress nextElement = inetAddresses.nextElement();
if (!nextElement.isLoopbackAddress()) {
str = nextElement.getHostAddress().toString();
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
return str;
}
public static int getNetState(Context context) {
NetworkInfo activeNetworkInfo;
try {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService("connectivity");
if (connectivityManager != null && (activeNetworkInfo = connectivityManager.getActiveNetworkInfo()) != null) {
if (activeNetworkInfo.isAvailable() && activeNetworkInfo.isConnected()) {
if (!connectionNetwork()) {
return NET_CNNT_BAIDU_TIMEOUT;
}
return NET_CNNT_BAIDU_OK;
}
return NET_NOT_PREPARE;
}
} catch (Exception e) {
e.printStackTrace();
}
return NET_ERROR;
}
private static boolean connectionNetwork() {
HttpURLConnection httpURLConnection;
Throwable th;
HttpURLConnection httpURLConnection2 = null;
try {
httpURLConnection = (HttpURLConnection) new URL(url).openConnection();
} catch (IOException unused) {
} catch (Throwable th2) {
httpURLConnection = null;
th = th2;
}
try {
httpURLConnection.setConnectTimeout(TIMEOUT);
httpURLConnection.connect();
if (httpURLConnection != null) {
httpURLConnection.disconnect();
}
return true;
} catch (IOException unused2) {
httpURLConnection2 = httpURLConnection;
if (httpURLConnection2 != null) {
httpURLConnection2.disconnect();
}
return false;
} catch (Throwable th3) {
th = th3;
if (httpURLConnection != null) {
httpURLConnection.disconnect();
}
throw th;
}
}
public static boolean is3G(Context context) {
NetworkInfo activeNetworkInfo = ((ConnectivityManager) context.getSystemService("connectivity")).getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.getType() == 0;
}
public static boolean isWifi(Context context) {
NetworkInfo activeNetworkInfo = ((ConnectivityManager) context.getSystemService("connectivity")).getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.getType() == 1;
}
public static boolean is2G(Context context) {
NetworkInfo activeNetworkInfo = ((ConnectivityManager) context.getSystemService("connectivity")).getActiveNetworkInfo();
if (activeNetworkInfo != null) {
return activeNetworkInfo.getSubtype() == 2 || activeNetworkInfo.getSubtype() == 1 || activeNetworkInfo.getSubtype() == 4;
}
return false;
}
public static boolean isWifiEnabled(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService("connectivity");
return (connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || ((TelephonyManager) context.getSystemService(HintConstants.AUTOFILL_HINT_PHONE)).getNetworkType() == 3;
}
}