2010-11-05 85 views

回答

24

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

首先,你需要请求“WRITE_SETTINGS的许可在您的“AndroidManifest.xml中”:

<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

+0

谢谢...这解决了我的代理设置问题... – user4232 2012-11-05 03:24:39

+3

@Flexiweb,Bro。它不适用于Android操作系统版本3及以上版本。你能帮忙吗? – Harpreet 2013-02-25 12:12:54

+0

这可能适用于'putString',但我尝试5.1.1'getString',并且它为每一个都返回null。 – 2017-05-01 22:51:14

2

您不能从应用程序执行此操作。

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

+1

是的,我想我的应用程序改变WiFi IP设置..它不可能? – faheem 2010-11-05 14:25:41

+0

我认为彼得试图做的一点是,你不应该想要任意的应用程序来改变这些设置。 – 2010-11-05 14:28:08

+0

好吧,我想创建一个应用程序,改变这些n/w设置(IP,DNS,网关)..创建不同的配置文件的WiFi配置。并在单一的触摸它改变配置。我的应用程序已完成60%,只是想要一种方法或任何改变这些设置 – faheem 2010-11-05 14:29:57

1

后续的代码也可以这样做:

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

这是如何设置DNS值的? – 2016-07-08 04:40:15