用户/开发者如何为Android 2.x版本设置代理配置?

12

我想知道在Android 2.x版本中,用户或开发人员是否可以设置Wi-Fi接入点代理设置(我知道在3.x或更高版本中可以通过编辑无线设置中的AP配置来实现),以便以以下方式从代码获取设置:

ProxySelector defaultProxySelector = ProxySelector.getDefault();
List<Proxy> proxyList = defaultProxySelector.select("http://www.google.it");

这应该是获取Android设备当前代理配置的正确方式

我知道Android源代码中有一个隐藏的Activity,叫做ProxySelector(请注意,它与java.net.ProxySelector具有相同的名称,但它是一个Android Activity,位于包:com.android.settings.ProxySelector中),但它设置了类似于全局代理配置的东西,似乎被默认的ProxySelector类忽略了。

这个问题是因为似乎对于Android 3.x或更高版本,使用java.net.ProxySelector的标准方式似乎没有问题,但对于Android 2.x版本则不然。这是一种改变的行为还是我做错了什么?

在Android 2.x版本中,我们应该使用全局代理设置吗?顺便说一下,我们可以通过以下方式读取全局代理设置:

Settings.Secure.getString(getApplicationContext().getContentResolver(),Settings.Secure.HTTP_PROXY);
1个回答

3

我认为在Gingerbread或者可能是Honeycomb之前,没有任何平台级别的支持Wi-Fi代理。

编辑:
一位在该平台上工作的Android工程师确认,系统直到Honeycomb才拥有不同网络类型(例如Wi-Fi)的代理,因此没有“官方”的方法来获取2.x版本的Wi-Fi代理。


哦,太好了 :-O !! 为了满足很多愤怒的用户(目前分布超过95%),您有什么建议来解决这个问题吗? - lechuckcaptain
你认为是否可能在系统范围内设置系统属性(http.proxyHosthttp.proxyPort等),以便默认的ProxySelector实现(http://goo.gl/dAZ8j)可以读取,这样开发人员就可以继续使用标准的ProxySelector使用方式了? - lechuckcaptain
请查看此帖子以获取更详细的解释:https://dev59.com/Zmgv5IYBdhLWcg3wKthA#13616054 - Adam
你知道在编程中是否可以通过程序判断WiFi是否已经屏蔽了WhatsApp、Instagram等服务吗? - Skizo-ozᴉʞS ツ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接