以编程方式设置Android IP,DNS,GATEWAY设置

时间:2010-11-05 13:57:38

标签: android set wifi ip

如何从android java设置wifi ip地址,dns地址,网关,即以编程方式设置,我没有找到任何能够存储值的方法。

5 个答案:

答案 0 :(得分:27)

您可以以编程方式更改系统设置。

首先,您需要在'AndroidManifest.xml'中请求'WRITE_SETTINGS'权限:

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

然后,您需要使用以下代码实际更改设置:

    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_USE_STATIC_IP, "0");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS1, "192.168.0.2");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS2, "192.168.0.3");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_GATEWAY, "192.168.0.1");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_NETMASK, "255.255.255.0");
    android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_IP, "1");

可以通过相同的方法访问当前设置,但使用'getString'而不是'putString'。

有关设置选项的信息,请访问此处的参考: Settings.System | Android Developers

答案 1 :(得分:2)

您无法通过应用程序执行此操作。

您希望手机上的应用程序随意更改手机的设置吗?

答案 2 :(得分:0)

不确定它会有所帮助,但可以在无线设置中为特定接入点手动设置备用IP,网关,dns等。您是自动执行还是使用意图是另一个问题?

我刚看到这可能会有所帮助

How can i call Wi-Fi settings screen from my application using Android

答案 3 :(得分:0)

android.provider.Settings.System.putString 现已弃用 这是新方法 https://developer.android.com/reference/android/net/wifi/WifiManager 我也不知道怎么用这个新方法,如果有人知道请也给我学一下

答案 4 :(得分:-1)

以下代码也可以这样做:

    WifiManager mWifiManager = (WifiManager)mContext.getSystemService(Context.WIFI_SERVICE);
    DhcpInfo dhcpInfo = mWifiManager.getDhcpInfo();
    int dns1 = dhcpInfo.dns1;
    int dns2 = dhcpInfo.dns2;