Android两种获取IP地址的方式(使用WIFI和GPRS)

来源:互联网 发布:mentohust mac版下载 编辑:程序博客网 时间:2024/05/16 06:43

1、使用WIFI
首先设置用户权限:

<!--允许应用程序改变WIFI连接状态-->    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><!--允许应用程序访问WIFI网卡的网络信息-->    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

其次,设置代码:

//获取wifi服务          WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);          //判断wifi是否开启          if (!wifiManager.isWifiEnabled()) {          wifiManager.setWifiEnabled(true);            }          WifiInfo wifiInfo = wifiManager.getConnectionInfo();               int ipAddress = wifiInfo.getIpAddress();           String ip = intToIp(ipAddress);           EditText et = (EditText)findViewById(R.id.EditText01);          et.setText(ip);      }         private String intToIp(int i) {                 return (i & 0xFF ) + "." +               ((i >> 8 ) & 0xFF) + "." +               ((i >> 16 ) & 0xFF) + "." +               ( i >> 24 & 0xFF) ;       }   

2、使用GPRS
首先设置用户权限:

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

其次,代码如下:

public String getLocalIpAddress()      {          try          {              for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)              {                 NetworkInterface intf = en.nextElement();                 for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();)                 {                     InetAddress inetAddress = enumIpAddr.nextElement();                     if (!inetAddress.isLoopbackAddress())                     {                         return inetAddress.getHostAddress().toString();                     }                 }             }          }          catch (SocketException ex)          {              Log.e("WifiPreference IpAddress", ex.toString());          }          return null;      }  
0 0