虽然互联网正在运行,代理下的应用程序无法在模拟器中工

Roo*_*kie 7 android android-emulator

我在模拟器中的2.2和2.3版本的android中启用了代理设置,并且互联网开始工作但我安装了一个应用程序(仅适用于代理)仍然无法正常工作.当我为4.0版本模拟器做同样的事情时,它正在那里工作.任何人都可以告诉,为什么它不工作在2.2和2.3版本虽然互联网工作.

Gen*_*ene 6

我还在Eclipse环境中为模拟器设置了代理.它正确地将代理地址添加到模拟器启动命令.

然而,在我进入模拟器中的WiFi设置并输入代理地址之前,我仍然只在某些应用程序(如浏览器)而不是其他应用程序(如地图)中工作.

请注意,您无法http://在此设置中使用DNS名称,因为您可以在模拟器启动行中使用.(花了一个小时才搞清楚.)


Raj*_*ani 2

在模拟器中配置代理允许浏览器应用程序使用它,但任何其他应用程序都需要具有 HTTP 代理能力才能访问互联网。

假设您使用 DefaultHttpClient 类连接到互联网,则必须在建立连接之前将以下代码添加到您的 Android 应用程序中:

DefaultHttpClient client = new DefaultHttpClient();

HttpHost proxy = new HttpHost("yourproxy.domain.com", 3128); 
// Enter your proxy domain and port
client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
Run Code Online (Sandbox Code Playgroud)

如果您使用经过身份验证的代理,则还需要以下行:

client.getCredentialsProvider().setCredentials(
                new AuthScope("yourproxy.domain.com", 3128),
                new UsernamePasswordCredentials("proxyusername", "password"));
Run Code Online (Sandbox Code Playgroud)

由于您希望相同的代码在模拟器和真实手机上都能工作,因此您应该向应用程序添加一个设置,允许用户打开或关闭代理的使用,并输入代理服务器/端口/凭据而不是在应用程序中对它们进行硬编码。