ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2012年6月15日 星期五

support http_proxy on wifi connection

Android framewok 好像有寫 http_proxy 的 support。但是有限制,wifi 不能用。

所以改一下,把限制拿掉: diff --git a/core/java/android/net/http/RequestQueue.java b/core/java/android/net/http/RequestQueue.java index a31639f..a1f8f1b 100644 --- a/core/java/android/net/http/RequestQueue.java +++ b/core/java/android/net/http/RequestQueue.java @@ -261,7 +261,8 @@ public class RequestQueue implements RequestFeeder { */ private synchronized void setProxyConfig() { NetworkInfo info = mConnectivityManager.getActiveNetworkInfo(); - if (info != null && info.getType() == ConnectivityManager.TYPE_WIFI) { + //if (info != null && info.getType() == ConnectivityManager.TYPE_WIFI) { + if (false) { mProxyHost = null; } else { String host = Proxy.getHost(mContext);
然後,就可以去設定 http_proxy 的值。

proxy 的設定,default 只有寫在 vpn 和 3g 連線。

所以用手動改 database setting 比較快,這部份就跟網路上一般的說明一樣:

adb shell #sqlite3 /data/data/com.android.providers.settings/database/settings.db #sqlite > INSERT INTO secure VALUES(99,'http_proxy','192.168.147.242:3128'); #.quit
然後重開。
-- 如果是在 setting 裡面設定,是可以不用重開的。

** 2.3 之前的 database 好像是 system,之後改成 secure 了。



ref:

其他:

要開啟 Http 的 LOG,修改 frameworks/base/core/java/android/net/HttpLog.java,
其中: private static final boolean DEBUG = true;

Database 改由 secure 的 code 是在同目錄的 Proxy.java:
static final public String getHost(Context ctx) { ContentResolver contentResolver = ctx.getContentResolver(); Assert.assertNotNull(contentResolver); String host = Settings.Secure.getString( contentResolver, Settings.Secure.HTTP_PROXY); if (host != null) { int i = host.indexOf(':'); if (i == -1) { if (DEBUG) { Assert.assertTrue(host.length() == 0); } return null; } return host.substring(0, i); } return getDefaultHost(); }

沒有留言:

標籤

網誌存檔