再次坚持同样的问题。
我发现我们可以像这样设置静态系统设置:
System.putString(getContentResolver(), android.provider.Settings.System.WIFI_USE_STATIC_IP, "1"); // to define it use static ip's
System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_IP,"192.168.1.15");
System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_NETMASK,"255.255.255.0");
System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS1,"192.168.1.1");
System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_GATEWAY,"192.168.1.1");
但没有成功!
我不明白何时设置这些设置?
我应该在创建wifi配置之前,还是在保存wifi配置之后,甚至在激活之前或之后都这样做?
但是,我已经尝试了所有可能的情况,当我查看Android WiFi设置时,我发现它仍然在DHCP上。
之前的一个问题,即How to configue a static IP address, netmask, gateway programmatically on Android 3.x or 4.x已完全毁了我的Android设备,现在它无法切换 在它的WiFi上了。
我也在HTC手机上尝试过静态IP,但没有成功,它始终处于DHCP模式!
我是否需要拨打“重新连接”命令?如果是,那么以哪种方式?
答案 0 :(得分:4)
我认为你应该看起来像:
android.provider.Settings.System.putString(getContentResolver(),android.provider.Settings.System.WIFI_STATIC_IP,"192.168.1.15");
android.provider.Settings.System.putString(getContentResolver(),android.provider.Settings.System.WIFI_STATIC_DNS1, "192.168.1.1");
android.provider.Settings.System.putString(getContentResolver(),android.provider.Settings.System.WIFI_STATIC_GATEWAY, "192.168.1.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_USE_STATIC_IP, "1");
不要忘记清单:
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
关于您设备的WiFi问题,您可以尝试以编程方式切换WIFI。这篇文章可能会有帮助: How to programmatically turn off WiFi on Android device?
答案 1 :(得分:2)
经过一年多的时间,我放弃了设置静态IP(或DHCP,DNS,...)。简单地说,这是不可能的,或者更好的是,它不允许(来自任意应用程序)。
有人说:
“您可以使用NDK - 这可以让您在Android下对Linux进行低级别访问。警告:不要指望将其记录或支持。他们甚至可能禁止您进入Android Market(我知道我会)“
对于那些想要与NDK有一些经验的人,这里有一个链接:
http://developer.android.com/tools/sdk/ndk/index.html
祝你好运,如果你发现有趣的事情,请提供一些反馈!