zoukankan      html  css  js  c++  java
  • 关于获取android的wifiip地址

          最近做项目时,出了点小问题,在博客中记录下。

          由于项目需要获取当前android系统的wifi-ip地址,习惯性的随手在网上一搜,找了段代码就用了,也测试了,可以正常获取,代码如下:

     1 try {
     2     for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
     3         NetworkInterface intf = en.nextElement();
     4         for (Enumeration<InetAddress> enumIpAddr = intf
     5                 .getInetAddresses(); enumIpAddr.hasMoreElements();) {
     6             InetAddress inetAddress = enumIpAddr.nextElement();
     7             if (!inetAddress.isLoopbackAddress()) {
     8                 String ip = inetAddress.getHostAddress().toString();
     9             }
    10         }
    11     }
    12 } catch (SocketException ex) {
    13     ex.printStackTrace();
    14 }

    结果项目交付的时候出问题了,客户那边怎么也用不了,结果对方用的是3G卡,那个IP地址被上面的代码一起获取出来了,导致出问题了。以上代码是获取wifi和3G网络ip地址的。

    如果只获取WIFI的IP地址,代码如下:

    1         // 只获取wifi地址
    2 WifiManager wifimanage = (WifiManager) getSystemService(Context.WIFI_SERVICE);//获取WifiManager  
    3 //检查wifi是否开启  
    4 if(wifimanage.isWifiEnabled()) { // 没开启wifi时,ip地址为0.0.0.0
    5     WifiInfo wifiinfo= wifimanage.getConnectionInfo();  
    6     String ip = intToIp(wifiinfo.getIpAddress());  
    7 }  
    1 //将获取的int转为真正的ip地址,参考的网上的,修改了下  
    2 private String intToIp(int i)  {
    3     return (i & 0xFF)+ "." + ((i >> 8 ) & 0xFF) + "." + ((i >> 16 ) & 0xFF) +"."+((i >> 24 ) & 0xFF);
    4 }
  • 相关阅读:
    【转】CUDA5/CentOS6.4
    【转】centos 6.4 samba 安装配置
    【转】Install MATLAB 2013a on CentOS 6.4 x64 with mode silent
    【转】Getting xrdp to work on CentOS 6.4
    【VLFeat】使用matlab版本计算HOG
    Unofficial Windows Binaries for Python Extension Packages
    March 06th, 2018 Week 10th Tuesday
    March 05th, 2018 Week 10th Monday
    March 04th, 2018 Week 10th Sunday
    March 03rd, 2018 Week 9th Saturday
  • 原文地址:https://www.cnblogs.com/error404/p/3108785.html
Copyright © 2011-2022 走看看