From e621d580011682941a79c107f46fe7aeb5b0e7de Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期一, 08 一月 2024 11:53:48 +0800 Subject: [PATCH] 2024年01月08日11:53:43 --- 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