代碼核心介紹:
WifiManager類提供了對裝置Wifi功能的管理,包括Wifi開關的開啟和關閉,IP地址擷取等等,早期的Android版本甚至支援對於IP的設定。在這裡僅介紹其簡單的一個小應用——擷取IP地址。
首先先添加Uses-Permission:CHANGE_WIFI_STATE,WAKE_LOCK和ACCESS_WIFI_STATE。代碼如下(AndroidManifest.xml):
[html] <span style="font-size:16px;"><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
</span>
<span style="font-size:16px;"><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
</span>
[java] <span style="font-size:16px;">JAVA代碼:
private String getIp(){
WifiManager wm=(WifiManager)getSystemService(Context.WIFI_SERVICE);
//檢查Wifi狀態
if(!wm.isWifiEnabled())
wm.setWifiEnabled(true);
WifiInfo wi=wm.getConnectionInfo();
//擷取32位整型IP地址
int ipAdd=wi.getIpAddress();
//把整型地址轉換成“*.*.*.*”地址
String ip=intToIp(ipAdd);
return ip;
}
private String intToIp(int i) {
return (i & 0xFF ) + "." +
((i >> 8 ) & 0xFF) + "." +
((i >> 16 ) & 0xFF) + "." +
( i >> 24 & 0xFF) ;
}
</span>
摘自 北京大學-Google Android實驗室