android手機兩種方式擷取IP地址

來源:互聯網
上載者:User

1.使用WIFI

首先設定使用者權限

Xml代碼  
  1. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>  
  2. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>  
  3. <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>  

 

其次,代碼如下

Java代碼  
  1. public void onCreate(Bundle savedInstanceState) {  
  2.         super.onCreate(savedInstanceState);  
  3.         setContentView(R.layout.main);  
  4.          
  5.         //擷取wifi服務  
  6.         WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);  
  7.         //判斷wifi是否開啟  
  8.         if (!wifiManager.isWifiEnabled()) {  
  9.         wifiManager.setWifiEnabled(true);    
  10.         }  
  11.         WifiInfo wifiInfo = wifiManager.getConnectionInfo();       
  12.         int ipAddress = wifiInfo.getIpAddress();   
  13.         String ip = intToIp(ipAddress);   
  14.         EditText et = (EditText)findViewById(R.id.EditText01);  
  15.         et.setText(ip);  
  16.     }     
  17.     private String intToIp(int i) {       
  18.          
  19.           return (i & 0xFF ) + "." +       
  20.         ((i >> 8 ) & 0xFF) + "." +       
  21.         ((i >> 16 ) & 0xFF) + "." +       
  22.         ( i >> 24 & 0xFF) ;  
  23.      }   

 

2.使用GPRS

首先,設定使用者上網許可權

Xml代碼  
  1. <uses-permission android:name="android.permission.INTERNET"></uses-permission>  

 

其次,代碼如下

Java代碼  
  1. public String getLocalIpAddress()  
  2.     {  
  3.         try  
  4.         {  
  5.             for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)  
  6.             {  
  7.                NetworkInterface intf = en.nextElement();  
  8.                for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();)  
  9.                {  
  10.                    InetAddress inetAddress = enumIpAddr.nextElement();  
  11.                    if (!inetAddress.isLoopbackAddress())  
  12.                    {  
  13.                        return inetAddress.getHostAddress().toString();  
  14.                    }  
  15.                }  
  16.            }  
  17.         }  
  18.         catch (SocketException ex)  
  19.         {  
  20.             Log.e("WifiPreference IpAddress", ex.toString());  
  21.         }  
  22.         return null;  
  23.     }  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.