AndroidはWifiの高度設定が静的IP配置方式かDHCP配置方式かを判断

1071 ワード

AndroidはWifiの高度な設定が静的IP構成方式であるかDHCP構成方式であるかをどのように判断するか、偶然にも小さなコツを発見し、現在の無線ネットワークのDhcpInfoオブジェクトを取得し、このオブジェクトのDHCP構成と静的IP構成方式での出力情報、すなわちDhcpInfoを呼び出すことを観察することができる.toString()メソッドはコンソールに出力され、ここで、DHCP構成方式における出力情報は、ipaddr 192.168.0.107 gateway 192.168.0.1 netmask 255.255.255.09 dns 1 218.85.152.99 dns 2 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.255.0.1 dns 1 218.85.899 dns 2 192.168.0.1 DHCP server 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";
        }
    }