Android 开发者文档说了以下内容Settings.Secure.HTTP_PROXY
:
全局 http 代理的主机名和端口。在主机和端口 TODO 之间使用“:”分隔符 - 不推荐使用 global_http_proxy_host 等
但没有任何相关信息global_http_proxy_host
。现在我总是得到null
当尝试阅读时Settings.Secure.HTTP_PROXY
.
Settings.Secure.HTTP_PROXY
在 ICS 之前的所有版本中都可以正常工作。
您可以使用Java Reflection来设置在ICS上测试的全局代理。
更新的代码
Activity activity = this;
private void setProxtAndPortOnICS(String porxyServer2, int port2)
{
try
{
Class jwcjb = Class.forName("android.webkit.JWebCoreJavaBridge");
Class params[] = new Class[1];
params[0] = Class.forName("android.net.ProxyProperties");
Method updateProxyInstance = jwcjb.getDeclaredMethod("updateProxy", params);
Class wv = Class.forName("android.webkit.WebView");
Field mWebViewCoreField = wv.getDeclaredField("mWebViewCore");
Object mWebViewCoreFieldIntance = getFieldValueSafely(mWebViewCoreField, oauthPage);
Class wvc = Class.forName("android.webkit.WebViewCore");
Field mBrowserFrameField = wvc.getDeclaredField("mBrowserFrame");
Object mBrowserFrame = getFieldValueSafely(mBrowserFrameField, mWebViewCoreFieldIntance);
Class bf = Class.forName("android.webkit.BrowserFrame");
Field sJavaBridgeField = bf.getDeclaredField("sJavaBridge");
Object sJavaBridge = getFieldValueSafely(sJavaBridgeField, mBrowserFrame);
Class ppclass = Class.forName("android.net.ProxyProperties");
Class pparams[] = new Class[3];
pparams[0] = String.class;
pparams[1] = int.class;
pparams[2] = String.class;
Constructor ppcont = ppclass.getConstructor(pparams);
updateProxyInstance.invoke(sJavaBridge, ppcont.newInstance("my.proxy.com", 1234, null));
}
catch (Exception ex)
{
}
}
private Object getFieldValueSafely(Field field, Object classInstance) throws IllegalArgumentException, IllegalAccessException {
boolean oldAccessibleValue = field.isAccessible();
field.setAccessible(true);
Object result = field.get(classInstance);
field.setAccessible(oldAccessibleValue);
return result;
}
现在您可以使用代理服务器过滤掉网址。
或者看看this http://madeye.me/2012/04/04/how-to-set-http-proxy-in-android-webview博客是中文的,但是你可以阅读代码,它相当容易理解。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)