我使用连接管理器类并获取网络信息,我只获取网络类型是 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/