Android获取热点主机ip和连接热点手机ip的教程

作者:袖梨 2022-06-25

有许多初学android开发的朋友不知道Android怎么获取热点主机ip和连接热点手机ip,小编将这篇文章分享给大家,希望能对大家有所帮助

其中定义WIFI AP的几个状态

public static final int WIFI_AP_STATE_DISABLING = 10;  
public static final int WIFI_AP_STATE_DISABLED = 11;  
public static final int WIFI_AP_STATE_ENABLING = 12;  
public static final int WIFI_AP_STATE_ENABLED = 13;  
public static final int WIFI_AP_STATE_FAILED = 14;  

对应于WifiMangaer.java中对这几个状态的定义。

获取WIFI热点的状态:

public int getWifiApState(Context mContext) {  
  WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);  
    try {  
      Method method = wifiManager.getClass().getMethod("getWifiApState");  
      int i = (Integer) method.invoke(wifiManager);  
      Log.i(TAG,"wifi state: " + i);  
      return i;  
    } catch (Exception e) {  
      Log.e(TAG,"Cannot get WiFi AP state" + e);  
      return WIFI_AP_STATE_FAILED;  
    }  
  }  

判断Wifi热点是否可用:

private ArrayList getConnectedHotIP() { 
  ArrayList connectedIP = new ArrayList(); 
  try { 
    BufferedReader br = new BufferedReader(new FileReader( 
        "/proc/net/arp")); 
    String line; 
    while ((line = br.readLine()) != null) { 
      String[] splitted = line.split(" +"); 
      if (splitted != null && splitted.length >= 4) { 
        String ip = splitted[0]; 
        connectedIP.add(ip); 
      } 
    } 
  } catch (Exception e) { 
    e.printStackTrace(); 
  } 
  return connectedIP; 
} 
//输出链接到当前设备的IP地址 
public void printHotIp() { 

  ArrayList connectedIP = getConnectedHotIP(); 
  StringBuilder resultList = new StringBuilder(); 
  for (String ip : connectedIP) { 
    resultList.append(ip); 
    resultList.append("n"); 
  } 
  System.out.print(resultList); 
  Log.d(TAG,"---->>heww resultList="+resultList); 
} 

当然在应用中要添加访问WIFI设备的权限:

 

获取热点主机ip地址的代码:

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
      DhcpInfo info=wifiManager.getDhcpInfo();
      System.out.println(info.serverAddress);

相关文章

精彩推荐