From 0ccb78cfb85fbba31ee16a57b13752747585b9a9 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 15 九月 2025 10:15:12 +0800
Subject: [PATCH] Merge branch 'master' into google
---
app/src/main/java/com/hdl/photovoltaic/utils/NetworkUtils.java | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 57 insertions(+), 0 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/NetworkUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/NetworkUtils.java
index 5e5b85a..e640fc2 100644
--- a/app/src/main/java/com/hdl/photovoltaic/utils/NetworkUtils.java
+++ b/app/src/main/java/com/hdl/photovoltaic/utils/NetworkUtils.java
@@ -10,6 +10,8 @@
import android.net.Network;
import android.net.NetworkInfo;
import android.net.NetworkRequest;
+import android.net.wifi.WifiInfo;
+import android.net.wifi.WifiManager;
import android.os.Build;
import android.telephony.TelephonyManager;
@@ -19,6 +21,11 @@
import com.hdl.photovoltaic.HDLApp;
import java.lang.ref.WeakReference;
+import java.net.Inet4Address;
+import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.util.Enumeration;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.Executors;
@@ -236,6 +243,56 @@
return cm.getActiveNetworkInfo();
}
+ /**
+ * 鑾峰緱IP鍦板潃锛屽垎涓轰袱绉嶆儏鍐�:
+ * 涓�锛氭槸wifi涓嬶紱
+ * 浜岋細鏄Щ鍔ㄧ綉缁滀笅锛�
+ */
+ public static String getIPAddress(Context context) {
+ NetworkInfo info = ((ConnectivityManager) context
+ .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
+ if (info != null && info.isConnected()) {
+ if (info.getType() == ConnectivityManager.TYPE_MOBILE) {//褰撳墠浣跨敤2G/3G/4G缃戠粶
+ try {
+ //Enumeration<NetworkInterface> en=NetworkInterface.getNetworkInterfaces();
+ for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
+ NetworkInterface intf = en.nextElement();
+ for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
+ InetAddress inetAddress = enumIpAddr.nextElement();
+ if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {
+ return inetAddress.getHostAddress();
+ }
+ }
+ }
+ } catch (SocketException e) {
+ e.printStackTrace();
+ }
+ } else if (info.getType() == ConnectivityManager.TYPE_WIFI) {//褰撳墠浣跨敤鏃犵嚎缃戠粶
+ WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
+ WifiInfo wifiInfo = wifiManager.getConnectionInfo();
+ //璋冪敤鏂规硶灏唅nt杞崲涓哄湴鍧�瀛楃涓�
+ String ipAddress = intIP2StringIP(wifiInfo.getIpAddress());//寰楀埌IPV4鍦板潃
+ return ipAddress;
+ }
+ } else {
+ //褰撳墠鏃犵綉缁滆繛鎺�,璇峰湪璁剧疆涓墦寮�缃戠粶
+ }
+ return null;
+ }
+
+ /**
+ * 灏嗗緱鍒扮殑int绫诲瀷鐨処P杞崲涓篠tring绫诲瀷
+ *
+ * @param ip int绫诲瀷
+ * @return -
+ */
+ public static String intIP2StringIP(int ip) {
+ return (ip & 0xFF) + "." +
+ ((ip >> 8) & 0xFF) + "." +
+ ((ip >> 16) & 0xFF) + "." +
+ (ip >> 24 & 0xFF);
+ }
+
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private static class NetworkCallbackImpl extends ConnectivityManager.NetworkCallback {
--
Gitblit v1.8.0