我已经检查了Stack Overflow问题API,以便在Android应用程序中配置静态IP地址.
它适用于Android 2.3.但是,在更高的API级别上没有运气.例如,我把设置
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_USE_STATIC_IP, "1");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_IP, "192.168.0.100");
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_DNS1, "192.168.0.254");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_GATEWAY, "192.168.0.254");
Run Code Online (Sandbox Code Playgroud)
但我回去查看:
Setting --> Wi-Fi --> Long Press Access Point SSID --> Modify Network --> check Show advanced options
Run Code Online (Sandbox Code Playgroud)
该IP Settings领域仍然陈述DHCP但不是Static.
确实,我可以android.provider.Settings.System.getString()用来取回我设定的东西.它证明设置保存在某处,但系统只是忽略它.
系统使用android.provider.Settings.SystemAndroid 3.x和4.x以外的设置,因为设置是根据接入点SSID设置的.我可以修改一个SSID上的设置,就像它在Android 2.3上的工作方式一样吗?
我通过ProxySettings类在我的应用程序中启用了代理,但现在我想禁用它,以便ON/OFF代理按钮可以工作.
我搜索并尝试了很多,但我找不到停止代理的方法并继续使用常规Wi-Fi ......
我尝试从Stack Overflow获得的ProxySettings类中的以下代码:
public static void resetProxy(Context ctx) throws Exception
{
Object requestQueueObject = getRequestQueue(ctx);
if(requestQueueObject != null)
{
setDeclaredField(requestQueueObject, "mProxyHost", null);
}
}
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?