Cómo cambiar programaticamente la configuración WiFi en Android 6 (M)?

En este enlace hay una manera de hacerlo en Android 5 (L). Hay un método como este:

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); } 

Pero en android M no hay ningún campo "dnsServers" en la configuración de IP estático wifi. ¿Significa que no hay forma de cambiar la configuración wifi en 6.0?

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.