在this链接中,有一种方法可以在Android 5(L)中执行此操作。有这样的方法:
public static void setDNS(InetAddress dns1, InetAddress dns2, WifiConfiguration wifiConf)
throws SecurityException, IllegalArgumentException, NoSuchMethodException, InvocationTargetException,
NoSuchFieldException, IllegalAccessException {
Object linkProperties = null;
ArrayList<InetAddress> mDnses;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
staticIpConf = wifiConf.getClass().getMethod("getStaticIpConfiguration").invoke(wifiConf);
mDnses = (ArrayList<InetAddress>) getDeclaredField(staticIpConf, "dnsServers");
}
else {
linkProperties = getField(wifiConf, "linkProperties");
mDnses = (ArrayList<InetAddress>) getDeclaredField(linkProperties, "mDnses");
}
mDnses.clear();
mDnses.add(dns1);
mDnses.add(dns2);
}
但是在android M中,wifi静态ip配置中没有字段“dnsServers”。这是否意味着无法在6.0中更改wifi设置?