【发布时间】:2011-05-05 14:59:28
【问题描述】:
如何从android java设置wifi ip地址、dns地址、网关,即以编程方式,我没有找到任何能够存储值的方法。
【问题讨论】:
如何从android java设置wifi ip地址、dns地址、网关,即以编程方式,我没有找到任何能够存储值的方法。
【问题讨论】:
您无法通过应用程序执行此操作。
您希望手机上的应用程序随意更改手机设置吗?
【讨论】:
不确定它是否会有所帮助,但可以在无线设置中为特定接入点手动设置替代 ip、网关、dns 等。您是否可以自动执行此操作或使用意图是另一个问题?
我刚看到这个可能会有所帮助
How can i call Wi-Fi settings screen from my application using Android
【讨论】:
您可以通过编程方式更改系统设置。
首先,您需要在“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
【讨论】:
下面的代码也可以做到这一点:
WifiManager mWifiManager = (WifiManager)mContext.getSystemService(Context.WIFI_SERVICE);
DhcpInfo dhcpInfo = mWifiManager.getDhcpInfo();
int dns1 = dhcpInfo.dns1;
int dns2 = dhcpInfo.dns2;
【讨论】:
android.provider.Settings.System.putString 现已弃用 这是新方法 https://developer.android.com/reference/android/net/wifi/WifiManager 我也不知道怎么用这个新方法,如果有人知道也请教给我
【讨论】: