如何获取Android的当前DNS服务器?

我正在抓住我应用程序中目前使用的DNS服务器的地址,无论是通过Wifi还是移动连接。
DhcpInfo对象应该提供这个,但是如何获得一个有效的DhcpInfo对象?
调用getRuntime()。exec可以hang你的应用程序。

android.net.NetworkUtils.runDhcp()会导致不必要的网络请求。

所以我更喜欢这样做:

Class<?> SystemProperties = Class.forName("android.os.SystemProperties");
Method method = SystemProperties.getMethod("get", new Class[] { String.class });
ArrayList<String> servers = new ArrayList<String>();
for (String name : new String[] { "net.dns1", "net.dns2", "net.dns3", "net.dns4", }) {
    String value = (String) method.invoke(null, name);
    if (value != null && !"".equals(value) && !servers.contains(value))
        servers.add(value);
}
http://stackoverflow.com/questions/3070144/how-do-you-get-the-current-dns-servers-for-android

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何获取Android的当前DNS服务器?