在Wifi下獲取本地IP地址

代碼核心介紹:

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實驗室

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *