我正在处理一个应用程序,我可以访问ROM签名密钥。 我想以编程方式更改Android的全局代理设置,并碰到“Settings.Global.HTTP_PROXY”。我的应用程序将在Android KitKat设备(4.4 +)上运行
现在我的代码中有:
WifiManager manager = (WifiManager)mContext.getSystemService(Context.WIFI_SERVICE);
if (!manager.isWifiEnabled()){
Log.d(LOG_TAG, "Wifi not enabled.");
}
else{
if (Settings.Global.putString(mContext.getContentResolver(), Settings.Global.HTTP_PROXY, proxySettings)){
Log.d(LOG_TAG, "New Proxy Settings set");
}
else {
Log.d(LOG_TAG, "New Proxy Settings failed to be written.");
}
}
并写在应用程序的清单文件中:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
如前所述,我的应用程序使用系统密钥签名,因此没有权限问题。我已经在WIFI连接上手动设置代理设置到一些随机值,以测试代码执行时是否会发生变化。 Logcat将返回:
08-25 21:27:57.595: V/Provider/Settings(7302): Global.putString(name=http_proxy, value=localhost:8008 for 0
表示设置正在保存在数据库中,但是当我再次从“设置”应用程序检查代理设置时,先前设置的代理设置仍将显示,应用程序仍将使用较旧的代理设置。
此处我还缺少其他以编程方式设置全局Android代理设置的内容吗?
谢谢!