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