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<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" />  

以上转载自
http://blog.csdn.net/netwalk/article/details/23183501

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

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

你可能感兴趣的:(android)