【问题标题】:How to set system wide proxy in ICS如何在 ICS 中设置系统范围的代理
【发布时间】:2012-05-11 22:24:14
【问题描述】:

对于 Android 3.x 及之前的版本,您可以调出一个名为 com.android.settings.ProxySelector 的隐藏 UI。它在 Settings.Secure.HTTP_PROXY 中设置并由移动网络使用(WiFi 网络并不总是有效)。但是对于 ICS,我仍然可以调出这个隐藏的 UI,但它似乎不再设置代理了。当我点击“完成”时,我检查 Settings.Secure.HTTP_PROXY 或系统属性 http.proxyHost,两者都没有设置。

那么,在 ICS 中是否有一种方法可以让我设置全局代理,就像我以前使用 com.android.settings.ProxySelector UI 所做的那样?谢谢!

【问题讨论】:

    标签: android networking properties proxy wifi


    【解决方案1】:

    很遗憾,隐藏的活动“com.android.settings.ProxySelector”不是为设置 Wi-Fi 网络代理而设计的。事实上,您可以使用此活动设置全局代理,但对于标准应用程序,您不会看到更改。

    例如,默认浏览器仅对 MOBILE 网络使用此设置,而对 Wi-Fi 网络完全忽略它。

    当然,您可以使用 library 在您的个人应用程序中读取设置,但您不能指望其他应用程序也会这样做:(

    如果一切都清楚,请告诉我。无论如何,我正在尝试解决问题here,因此您可以找到有关此主题的更多资源。

    【讨论】:

    • 谢谢@LeChunk!我注意到 com.android.settings.ProxySelector 不适用于 ICS 设备的移动网络。即使我在 UI 中设置了代理,如果我执行 Settings.Secure.getString(getApplicationContext().getContentResolver(), Settings.Secure.HTTP_PROXY),我也不会得到任何东西,这意味着它没有真正设置。你看到同样的问题了吗?我也做了 System.getProperty("http.proxyHost"),但也没啥。
    • 刚刚修改了我原来的帖子,更清楚地表明我更关心移动数据端而不是 Wifi 端。
    • 很遗憾,我没有安装官方 ROM 的 ICS 设备。但是我在一个非官方的ICS ROM上试了一下好像是这个方法:Settings.Secure.getString(getApplicationContext().getContentResolver(), Settings.Secure.HTTP_PROXY)总是返回null。不知道为什么。这是确认我们不应该在较新版本上使用 com.android.settings.ProxySelector 活动的另一个线索。
    • 是的,这也是我在我的设备上看到的。我还尝试了 ICS 模拟器和相同的行为。所以这个活动现在没有效果了?那我该如何为移动网络设置代理呢?一些运营商没有用户可以编辑的 APN。
    • 我认为您只需将 APN 设置编辑到您的设备中即可。
    【解决方案2】:

    如果设备已植根。你可以编辑 Iptable

    【讨论】:

    • 感谢常伟。但我正在寻找非根设备的解决方案。
    • 这不是我自己的手机。我的手机总是root。 :-)
    猜你喜欢
    • 2013-11-03
    • 1970-01-01
    • 2012-09-01
    • 2010-10-07
    • 2012-04-30
    • 2011-01-12
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多