package com.prws.common.utils; import android.content.Context; import android.net.wifi.WifiManager; import android.util.Log; import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Collections; import java.util.List; import java.util.Timer; import java.util.TimerTask; public class NetUtil { private NetUtil(){} public static boolean isEthConnect(){ return hasDisplay("eth"); } public static boolean isWifiConnect(){ return hasDisplay("wlan"); } public static boolean is4GConnect(){ return hasDisplay("usb"); } private static boolean hasDisplay(String displayName){ try { List interfaces = Collections.list(NetworkInterface.getNetworkInterfaces()); for (NetworkInterface intf : interfaces) { String displayNameStr = intf.getDisplayName(); if(displayNameStr.contains(displayName)){ List addrs = Collections.list(intf.getInetAddresses()); for (InetAddress addr : addrs) { if (!addr.isLoopbackAddress()) { String sAddr = addr.getHostAddress(); boolean isIPv4 = sAddr.indexOf(':')<0; if(isIPv4){ return true; //检查到设备并且有设备ipv4的地址信息 } } } }else{ continue; } } } catch (Exception e) { e.printStackTrace(); } return false; } public static boolean isWifiDisabled(Context context){ try{ WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); return wifiManager.getWifiState()==WifiManager.WIFI_STATE_DISABLED; }catch (Exception e){ e.printStackTrace(); } return false; } public static void closeWifi(Context context,WifiChangeCallback callback){ try{ WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); if(wifiManager.getWifiState()== WifiManager.WIFI_STATE_ENABLED){//wifi打开 wifiManager.setWifiEnabled(false); Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { if(wifiManager.getWifiState()== WifiManager.WIFI_STATE_DISABLED){ callback.onWifiClosed(); timer.cancel(); } } },0,500); } }catch (Exception e){ e.printStackTrace(); } } public static void openWifi(Context context){ try{ WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); if(wifiManager.getWifiState()== WifiManager.WIFI_STATE_DISABLED){//wifi打开 wifiManager.setWifiEnabled(true); } }catch (Exception e){ e.printStackTrace(); } } public interface WifiChangeCallback{ public void onWifiClosed(); public void onWifiOpened(); } public static void printNetInfo(){ try { List interfaces = Collections.list(NetworkInterface.getNetworkInterfaces()); for (NetworkInterface intf : interfaces) { List addrs = Collections.list(intf.getInetAddresses()); for (InetAddress addr : addrs) { if (!addr.isLoopbackAddress()) { String sAddr = addr.getHostAddress(); Log.e("printNetInfo", "printNetInfo: "+sAddr ); } } } } catch (Exception ex) { } } }