其中定义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<String> getConnectedHotIP() {
  ArrayList<String> connectedIP = new ArrayList<String>();
  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<String> 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设备的权限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 

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

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

总结

以上所述是小编给大家介绍的Android获取热点主机ip和连接热点手机ip的方法 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

01-31 02:03