Aplicaciones bajo proxy que no funcionan en emulador aunque Internet está funcionando

Hice posible la configuración de proxy en la versión 2.2 y 2.3 de android en el emulador y el Internet comenzó a funcionar, pero tengo una aplicación instalada (que sólo funciona con proxy) todavía no funciona. Cuando hice lo mismo para el emulador de la versión 4.0, estaba trabajando allí. ¿Puede alguien decir, ¿por qué no está trabajando en la versión 2.2 y 2.3, aunque Internet está funcionando.

La configuración de su proxy en el emulador permite que la aplicación del navegador lo utilice, pero cualquier otra aplicación debe ser compatible con HTTP Proxy para acceder a Internet.

Suponiendo que use la clase DefaultHttpClient para conectarse a Internet, deberá agregar el siguiente código a su aplicación Android antes de realizar la conexión:

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); 

Si está utilizando un proxy autenticado, necesitará tener también estas líneas:

 client.getCredentialsProvider().setCredentials( new AuthScope("yourproxy.domain.com", 3128), new UsernamePasswordCredentials("proxyusername", "password")); 

Dado que desea que el mismo código funcione tanto en el emulador como en un teléfono real, debe agregar una configuración a la aplicación que permita al usuario activar o desactivar el uso del proxy e introducir el servidor proxy / puerto / credenciales En lugar de codificarlos en la aplicación.

También configuro un proxy para el emulador en el entorno de Eclipse. Se agregó correctamente la dirección de proxy al comando de inicio del emulador.

Sin embargo, todavía luchaba con él trabajando sólo en algunas aplicaciones (como el navegador) y no en otros (como Maps) hasta que entré en la configuración WiFi en el emulador y entró la dirección de proxy.

Tenga en cuenta que no puede utilizar http:// antes del nombre DNS en esta configuración como puede hacerlo en la línea de inicio del emulador. (Eso tomó una hora para averiguar.)

Debe probar esto (para Android 2.3):

 1. > adb shell 2. # sqlite3 /data/data/com.android.providers.settings/databases/settings.db 3. sqlite> INSERT INTO system VALUES(99,'http_proxy', 'proxy:port'); 4. sqlite>.exit 

Además, puede intentar definir proxy de forma explícita al iniciar el emulador a través del argumento http-proxy

 emulator -avd yourAVD -http-proxy http://yourproxy:port 
  • Emulador de Android TV con API de Google
  • OSX: Android Emulator Crashes
  • ¿Cómo puedo detectar el uso de tamaño de montón de una aplicación de Android?
  • Depuración remota con el emulador de Android
  • ¿Cómo puedo detectar cuándo se ejecuta una aplicación de Android en el emulador?
  • Copiar la base de datos de la carpeta de activos en el dispositivo no root
  • Cómo simular el modo de suspensión en el emulador de Android
  • El emulador de Android pierde conexión a Internet después de un período de tiempo
  • ¿Cómo puedo actualizar la conexión de red del emulador de Android después de que el host cambie de red?
  • DeviceMonitor constantemente da el error "no se pudo iniciar la supervisión emulator-5554", ¿cómo debo solucionarlo?
  • Cómo utilizar GCM en el emulador Intel x86
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.