Android应用程序如何决定是否要使用网络代理

时间:2012-03-03 08:09:22

标签: android networking proxy wifi android-3.0-honeycomb

我在使用Android 3.2的Motorola Xoom上运行了一些带有wifi代理设置的测试。首先,与2.x版本相比,这是向前迈出的一大步。现在,如果您设置代理,大多数应用程序会自动获取它(在2.x中,只有内置浏览器使用它)。所以我尝试了雅虎财经,彭博等等,他们都通过代理罚款。我没有得到的是一些浏览器,如firefox,Opera,不会通过代理。知道他们是怎么做到的。基本上在我的应用程序中,我如何决定是否要使用代理或尝试直接连接。根据我的测试,如果我们不做任何特殊的事情,默认是使用代理。那么我需要做些什么来允许我的应用程序绕过像Firefox / Opera这样的代理?

谢谢!

1 个答案:

答案 0 :(得分:7)

在API版本> = 11(Android 3.1及更高版本)的设备上,答案如下:

Android's proxy confusing documentation resources

您只需从ProxySelector类调用getDefault()方法,即可获得ProxySelector的默认Android实现。

ProxySelector defaultProxySelector = ProxySelector.getDefault();
Proxy proxy = null;
List<Proxy> proxyList = defaultProxySelector.select(uri);
if (proxyList.size() > 0)
{
  proxy = proxyList.get(0);
  Log.d(TAG, "Current Proxy Configuration: " + proxy.toString());
}

我认为一些Android应用程序(你说Opera和Firefox)根本不做这个检查,但实现了一些本机代理处理而不关心系统如何工作。