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

我如何设置无线的IP地址,DNS地址,网关从Android的Java程序,我没有find任何方法,有能力存储的价值。

Solutions Collecting From Web of "以编程方式设置Android IP,DNS,GATEWAY设置"

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

首先,您需要在您的“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开发者

你不能从应用程序中做到这一点。

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

不知道这会有所帮助,但可以在无线设置中为特定接入点手动设置替代的IP,网关,DNS等。 你是否可以自动做或者使用意图是另一个问题?

我刚看到这可能是有帮助的

如何从我的应用程序使用Android调用Wi-Fi设置屏幕

以下代码也可以做到这一点:

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