android - 如何在android中以编程方式检查连接的wifi是否是静态的

标签 android wifi android-wifi

我使用连接管理器类并获取网络信息,我只获取网络类型是 Wifi 还是以太网。但是当我的网络类型是 Wifi 时,我想知道它是静态的还是动态的。

谁能帮我解决这个问题

最佳答案

下面您可以找到改编自此 thread 的简单(未优化)代码. 代码是为 Android 4.0 编写的。

记得添加额外的用户权限:

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

方法:

public String getIpAssignment(){

    String myenumvalue="";
    WifiConfiguration wifiConf = null;
    WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    WifiInfo connectionInfo = wifiManager.getConnectionInfo();
    List<WifiConfiguration> configuredNetworks = wifiManager.getConfiguredNetworks();        
    for (WifiConfiguration conf : configuredNetworks){
        if (conf.networkId == connectionInfo.getNetworkId()){
            wifiConf = conf;
            break;              
        }
    }
    if(wifiConf != null){

        try {
            Object Enumer = getDeclaredField(wifiConf, "ipAssignment");
            myenumvalue = Enumer.toString();
        } catch (SecurityException e) {
            e.printStackTrace();
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }   


    }

    return myenumvalue;
}

它从 ipAssignment 返回枚举字段之一:UNASSIGNED |静态 | DHCP

关于android - 如何在android中以编程方式检查连接的wifi是否是静态的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14756248/

相关文章:

iphone - 如何创建 WiFi 弹出登录页面

php - 如何显示: "Error: no connection" in php when there's no internet connection?

java - Android - 通过 Wi-fi 传递简单的字符串?

android - 如何在android中获取WIFI接口(interface)的MAC地址?

Android Studio 无法截取设备的屏幕截图

android - 在没有选择器的情况下使用标准 gmail 应用程序发送电子邮件

Android ObjectAnimation 只启动了一次

android - GCM 无法在实时服务器上运行

iphone - 选择 WiFi 网络

android - TCP 客户端/服务器与多播广播