使用System.Global方法以编程方式设置Android代理设置

时间:2014-08-25 13:32:09

标签: java android proxy settings android-4.4-kitkat

我正在处理一个应用程序,我可以访问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代理设置的内容吗?

谢谢!

0 个答案:

没有答案