更改WIFI连接的DNS服务器

时间:2015-04-19 12:37:47

标签: android xamarin

我正在处理需要在有效Wi-Fi连接上更改DNS服务器的应用。

我获得了WiFiConfiguration个有效WiFi连接的对象,而且我知道Java linkProperties的{​​{1}}属性。但Mono的WiFiConfiguration不包含此功能;因为它可以解决这种情况吗?

1 个答案:

答案 0 :(得分:0)

没有API,但你可以使用反射来做黑客攻击。无法保证这将起作用

public static void setDNS(InetAddress dns, WifiConfiguration wifiConf)
    throws SecurityException, IllegalArgumentException, NoSuchFieldException, IllegalAccessException{
        Object linkProperties = getField(wifiConf, "linkProperties");
        if(linkProperties == null)return;

        ArrayList<InetAddress> mDnses = (ArrayList<InetAddress>)getDeclaredField(linkProperties, "mDnses");
        mDnses.clear(); //or add a new dns address , here I just want to replace DNS1
        mDnses.add(dns); 
    }