Android判断Wifi高级设置是静态IP配置方式还是DHCP配置方式

         Android如何判断Wifi高级设置是静态IP配置方式还是DHCP配置方式,偶然间发现一个小窍门,我们获取当前无线网络的DhcpInfo对象,可以观察这个对象在DHCP配置和静态IP配置方式下的输出信息,即调用DhcpInfo.toString()方法输出到控制台,其中DHCP配置方式下的输出信息为:
 ipaddr 192.168.0.107 gateway 192.168.0.1 netmask 255.255.255.0 dns1 218.85.152.99 dns2 192.168.0.1 DHCP server 192.168.0.1 lease 7200 seconds
         静态IP配置方式下的输出信息为:
ipaddr 192.168.0.107 gateway 192.168.0.1 netmask 255.255.255.0 dns1 218.85.152.99 dns2 192.168.0.1 DHCP server 0.0.0.0 lease 0 seconds
        可以看到,静态IP配置方式下DhcpInfo对象的leaseDuration和serverAddress为0,而DHCP配置方式下DhcpInfo的这两个值都不等于0,由这两个值就可以判断出Wifi高级设置是静态IP配置方式还是DHCP配置方式,代码如下:
 

    public String getWifiSetting(Context context){
        WifiManager wifiManager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
        DhcpInfo dhcpInfo=wifiManager.getDhcpInfo();
        if(dhcpInfo.leaseDuration==0){//静态IP配置方式
            return "StaticIP";
        }else{                         //动态IP配置方式
            return "DHCP";
        }
    }

 

你可能感兴趣的:(Android判断Wifi高级设置是静态IP配置方式还是DHCP配置方式)