Como definir as configurações de proxy do emulador Android


110

Quero usar o navegador dentro do emulador Android e quero usar as configurações de proxy na minha máquina. Como posso configurar isso?

Lendo os excelentes manuais do Android, eles me dizem que devo iniciar o Android usando o seguinte comando:

emulator -avd myavd -http-proxy http://168.192.1.2:3300

Mas ainda não consigo usar o navegador do emulador. Observe que estou usando o endereço IP do meu servidor proxy.

O que estou fazendo de errado?

Respostas:


147

A maneira mais simples e melhor é fazer o seguinte: Isso foi feito para o Android Emulator 2.2

  1. Clique no Menu
  2. Clique em Configurações
  3. Clique em Wireless & Networks
  4. Vá para redes móveis
  5. Vá para nomes de pontos de acesso
  6. Aqui você vai Telkila Internet, clique nele.
  7. Na seção Editar ponto de acesso, insira o "proxy" e a "porta"
  8. Forneça também o nome de usuário e a senha, o restante dos campos deixe-os em branco.

Não funciona com o caso de uso mais comum de execução do Fiddler2 ou outro proxy no localhost .... provavelmente adicionando encaminhamento de porta, mas isso também é uma dor
gcb

1
Ele não funciona no emulador do Android 2.3.3, mas funciona no emulador 4.1.2 para mim.
azgolfer 01 de

24
Isso não funciona mais nas imagens do Android 5 (api 21)
neomega

esta resposta deve ser a aceita! Funciona com Burpsuite no mac!
alquimista de

isso também funcionou com o Volley! adicionado apenas no caso de alguém estar usando o grep.
computingfreak

58

-http-proxy no Android Emulator

Em Run Configuration> Android Application> App> Target> Additional Emulator Command Line Options: -http-proxy http: //xx.xxx.xx.xx: 8080


que versão do eclipse é essa? não vejo esta interface :(
Salman von Abbas,

1
Você rolou para baixo?
Darpan

também configure seu emulador
Badre

3
para proxy com nome de usuário e senha, use este formato:-http-proxy http://username:password@host:port
ashakirov

erro emulator is not recognized as a commandno meu caso .. eu preciso adicionar algo na variável PATH ??. Estou usando o Android Studio 1.0.1 e tendo proxy no meu sistema de escritório.
Anil Bhaskar

40

Agora há uma configuração no emulador Android insira a descrição da imagem aqui



Funcionou para mim. Meu ambiente: ambiente MAC OS + emulador de Android e paralela ao Windows 7 com proxy fiddler
Arthur Menezes

7
Essa configuração nunca funcionou para mim. Sempre preciso iniciar o emulador com o comando -http-proxy para fazê-lo funcionar.
gsingh2011

2
Este menu tem um bug recorrente que está me deixando louco desde meados de 2017. Às vezes funciona, às vezes não no mesmo AVD. Apenas recriar o AVD poderia ajudar de forma confiável. Às vezes, o proxy cai no meio de uma sessão! No ambiente corporativo, isso significa que estou ficando sem acesso à minha conta por causa dessa merda.
halxinate de

Porém, parece que encontrei a solução por enquanto: configurar aquele hotspot wi-fi falso como acima para usar o proxy ajuda, embora meu proxy exija a autenticação, o que essa configuração de hotspot não tem. Apenas URL e porta ajudaram a restaurar a conectividade perdida imediatamente.
halxinate de

20

Tentei remover http no nome do servidor e funcionou para mim.

emulator -avd myavd -http-proxy 168.192.1.2:3300


Isso funciona apenas para navegador, mas nenhuma solicitação de aplicativo está passando pelo proxy :(
Felipe Sabino

14

Isso não ajudará no navegador, mas você também pode definir um proxy em seu código para usar com um cliente HTTP:

// proxy
private static final String PROXY = "123.123.123.123";
// proxy host
private static final HttpHost PROXY_HOST = new HttpHost(PROXY, 8080);
HttpParams httpParameters = new BasicHttpParams();
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, PROXY_HOST);

1
Você não deve colocar "127.0.0.1" para String PROXY.
Michaël,

kuester2000, dê uma olhada na minha pergunta aqui stackoverflow.com/questions/31723494/…
Zar E Ahmer

9

No Android Studio:

Clique em Editar configuração no menu do aplicativo

insira a descrição da imagem aqui

  1. Vá para o aplicativo ou aplicativo Android (como configurações padrão)
  2. toque no depurador
  3. Toque no comando de inicialização do LLDB
  4. Toque em +
  5. Adicionar seu comando -http-proxy http://168.192.1.2:3300

insira a descrição da imagem aqui

é isso.

Mais coisas legais se você quiser usar o IP do seu PC, use este comando:

  • -http-proxy "$(ipconfig getifaddr en0)":8888 no MacOS
  • -http-proxy "$(hostname -i)":8888 no Linux

4

Para definir o servidor proxy, precisamos definir a APNSconfiguração. Para fazer isso:

  1. Vá para a configuração

  2. Vá para wireless e redes

  3. Ir para redes móveis

  4. Vá para os nomes dos pontos de acesso. Use o menu para adicionar novos apns

    Definir Proxy = localhost

    Defina a porta = porta que você está usando para fazer o servidor proxy, no meu caso é 8989

    Para definir o nome e apn, aqui está o link:

    De acordo com seu simcartão você pode ver a tabela


O proxy "a autenticação através do servidor proxy não foi bem-sucedida" não requer autenticação e nunca viu nenhum pedido de acordo com o despejo tcp.
gcb


3

Instale o Proxifier em seu computador host. Configure o proxy para usar seu proxy . Você não precisa fazer mais nada. Você vai ficar bem. O proxy intercepta as chamadas do sistema (incluindo o emulador do Android) e roteia por meio do proxy configurado.


3
Observe que Proxifier é um software comercial que deve ser comprado.
Robert

2

nada disso funcionou, estou usando o Eclipse no windows 64-bit: siga os seguintes passos ... funcionou para mim: Window -> Preferences -> Android -> Launch -> Default Emulator Options -http-proxy = "http: / /10.1.8.30:8080 "

em sua janela de eclipse


2

Às vezes, mesmo depois de definir tudo, pode não funcionar. Eu tentei todos os métodos como

  1. Configurando o proxy no emulador APN
  2. Configurando através das preferências do Eclipse -> Android -> Iniciar

Nada funcionou. Então eu fiz o seguinte, que funcionou instantaneamente.

Vá para eclipse Run -> execute configurações. Em Aplicativos Android, você pode ver seu aplicativo. Agora, no lado direito, clique na guia Destino. Em 'Opções adicionais da linha de comando do emulador', adicione o seguinte.

-dns-server < servidores DNS de sua máquina local até três > -http-proxy http: // < seu proxy >: < sua porta proxy >

O problema aqui é que a configuração do servidor DNS deve ser do seu sistema local. Goto cmd rápida e executar ipconfig para verificar os seus servidores DNS. O mesmo acontece com o servidor proxy e a porta. Tudo o que funciona para o seu navegador deve ser colocado aqui.


2

A maneira mais fácil é excluir o APN padrão do emulador (no meu caso é o T-mobile) e criar um novo APN com suas configurações de proxy.

Nota: tentei todas as opções de linha de comando e também tentei definir o proxy para o APN padrão dos emuladores, mas nada funcionou.


Eu estava lutando por isso por mais de um mês, mas finalmente consegui funcionar ... Graças a @usergo, sua resposta me deu esta pista
Mahesh

2

Dependendo de qual ambiente você está usando para executar o emulador, verifique os logs para ver como o emulador foi iniciado. O meu começou como:

C: \ Users \ johan \ AppData \ Local \ Android \ Sdk \ tools \ emulator.exe -netdelay nenhum -netspeed full -avd Nexus_5X_API_23

Em seguida, você adiciona a opção -http-proxy, no meu caso:

C: \ Users \ johan \ AppData \ Local \ Android \ Sdk \ tools \ emulator.exe -netdelay nenhum -netspeed full -avd Nexus_5X_API_23 -http-proxy 192.168.0.22:8888


1

Caso você esteja em um ambiente de proxy e a Internet não esteja funcionando em seu emulador, não altere nenhuma configuração no emulador. Vá para o seu projeto eclipse, clique com o botão direito, clique em "Executar como" e em "Executar configuração". Na janela pop-up, escolha "Target" e role um pouco para baixo, você encontrará "Additional Emulator Command Line Options". Insira sua configuração de proxy aqui em "Additional Emulator Command Line Options" como eu inseri

-http-proxy http: // ee11s040: Om1l2ng3d4n2! 08@hproxy.iitm.ac.in: 3128

insira a descrição da imagem aqui

Em seguida, inicie um novo emulador.


1

a melhor maneira de definir o proxy corporativo com autenticação ntlm é usar cntlm:

http://cntlm.sourceforge.net/

Instale e configure em C: \ Arquivos de programas \ Cntlm \ cntlm.ini Por padrão cntlm, escuta 127.0.0.1:3128

No dispositivo Android, defina um novo APN com host proxy 10.0.2.2 e a porta 3128 10.0.2.2 é um alias especial para sua interface de loopback de host (127.0.0.1 em sua máquina de desenvolvimento)

consulte também http://developer.android.com/tools/devices/emulator.html#emulatornetworking

Saudações


1

Tem certeza de que seu endereço é 168.192.1.2 e não 192.168.1.2?

Observe os dois primeiros números trocados.


1

No console, inicie o próximo comando:

emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080

0

Ter o emulador de Android AVD:

  1. Abra o simulador (".. \ android-sdk \ AVD Manager.exe")
  2. Vá para Ferramentas
  3. Vá para Opções
  4. Nas configurações de proxy:

No primeiro campo (Servidor Proxy HTTP) defina apenas o endereço IP onde está o seu proxy (XXX.XXX.XXX.XXX) no segundo campo defina a porta do seu proxy (exemplo: 8080)

Em seguida, clique em Fechar na janela e inicie o emulador

---- Adicionado ... Então o alex steps funciona no meu caso:

Click on Menu
Click on Settings
Click on Wireless & Networks
Go to Mobile Networks
Go to Access Point Names
Here you will Telkila Internet (or other name), click on it.
In the Edit access point section, input the "proxy" and "port"

Isso apenas define as configurações de proxy para o gerenciador SDK, para baixar arquivos SDK.
Brad

0

Você pode definir o proxy em seu aplicativo. Isso pode ser feito usando a classe Configurações. Por exemplo, você pode adicionar a seguinte linha ao seu método "onCreate".

 Settings.System.putString(getContentResolver(), Settings.System.HTTP_PROXY, "myproxy:8080"); 

Para alterar as configurações de proxy, você precisa ter a permissão android.permission.WRITE_SETTINGS em seu arquivo AndroidManifest.xml.


0

Para alguns leanbackemuladores (de TV), você pode usar cmd:

adb shell settings put global http_proxy 10.0.2.2:8888

  • 8888 - é uma porta de proxy em uma máquina local (host), portanto, em uma máquina local o proxy http será 127.0.0.1:8888

Para remover o proxy (execute sequencialmente na linha cmd):

adb shell settings delete global http_proxy

adb shell settings put global global_http_proxy_host ""

adb shell settings put global global_http_proxy_port ""

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.