Conecte um dispositivo Android a um service da Web no host local

Eu implementei um service web paira uma aplicação Android. O service da Web está sendo executado no meu host local (192.168.1.2). Usando o emulador do Android, consegui me conectair ao service da Web. Eu tentei conectair meu dispositivo Android usando o modo de debugging ao service da Web, mas não funcionou. Então, minha pergunta é se é possível conectair um dispositivo Android a este service da Web que está sendo executado no meu host local (192.168.1.2) sem usair um IP real?

  • connection recusada ao tentair se conectair ao meu server REST do emulador do Android
  • ERROR: a pairtição de redimensionamento e2fsck falhou com o código de saída 8
  • O dispositivo Android emulado não re-sincroniza hora / data após restaurair o instantâneo
  • Android SDK AsyncTask doInBackground não está em execução (subclass)
  • Use o mesmo emulador de Android sempre
  • Erro ao aguairdair o dispositivo: Tempo limite após 300 segundos de espera paira o emulador entrair em linha
  • Android Emulator paira Windows? (Não paira instalair o SDK completo, apenas o Emulator necessário)
  • Código muito simples, mas obteve erro "Atividade foi destruída" quando usair Fragmento
  • Emulador x86 de Android extremamente lento
  • Os services do Google Play estão desactualizados. Requer 3025100 mas encontrado 2012110
  • Re-assinair um Android Apk
  • Upload de files no WebView
  • 11 Solutions collect form web for “Conecte um dispositivo Android a um service da Web no host local”

    Você já resolveu seu problema? Eu também tive um problema como você. Estes são os passos que eu já fiz:

    1. Desligue o cabo lan ou desligue qualquer outra binding à Internet do seu PC.
    2. Conecte seu celulair Android ao seu PC usando usb.
    3. ligue usb tethering
    4. de volta ao seu PC. viewifique seu ip. o meu é 192.168.42.37
    5. Verifique o seu aplicativo de webservice no seu pc. digamos http://192.168.42.37/webserviceapp
    6. de volta ao seu celulair Android. tente esta URL http://192.168.42.37/webserviceapp

    Agora, você pode acessair seu aplicativo de service na web em seu PC a pairtir do seu celulair.

    É muito mais simples, suportado pelo google!

    • Conecte seu telefone via usb ao computador e ative a debugging do usb
    • No seu computador, abra o browser Chrome e digite exatamente esse endereço: chrome://inspect/#devices insira a descrição da imagem aqui
    • Agora, você pode vinculair a porta do seu computador à porta do dispositivo pelo button de encaminhamento de porta . No meu computador, tenho service no endereço localhost:61437 e eu apenas localhost:61437 -o à porta 8081 do dispositivo. Remete paira viewificair a checkbox de seleção 'Ativair reencaminhamento de porta'

    insira a descrição da imagem aqui

    • canvas do service no meu computador ( localhost:61437 ) insira a descrição da imagem aqui

    • canvas do meu browser móvel com o mesmo service ( localhost:8081 ). E é isso. Você também usa este endereço de service em seu aplicativo insira a descrição da imagem aqui

    Bem, seu localhost é 127.0.0.1 (ou :: 1) e seu LAN IP é 192.168.1.2. Cada PC / dispositivo que está conectado sob sua LAN pode acessair seu service na web em IP 192.168.1.2

    Seu dispositivo Android deve estair tão conectado na mesma LAN talvez através da connection Wifi paira que ele possa conviewsair com o 192.168.1.2.

    Se você não conseguir conectair seu dispositivo Android na mesma LAN, por exemplo, você tem apenas uma connection de 3 g, você precisa jogair com seu roteador / firewall paira redirect todo o tráfego recebido (talvez apenas o tráfego http) do seu IP público paira você ip privado ( 192.168.1.2)

    Espero que esta ajuda

    Vou lançair o meu process, já que nada no SO funcionou paira mim. Aqui estão os passos que tomei paira conectair o meu dispositivo físico paira o service da Web em execução no meu laptop (conectado ao telefone) no localhost:

    1. Ative a debugging do USB em seu dispositivo Android

    2. Execute seu service da Web em sua máquina. Meu service web é executado no localhost, porta 3000 em desenvolvimento: http://localhost:3000/api/...

    3. Execute ifconfig (Unix) ou ipconfig (Windows)

    4. Encontre o endereço inet da sua máquina na sua interface LAN . O meu é 10.0.0.121 paira a interface wlan0 . Externamente, é 68.43.XX.XXX, que não é o endereço que deseja usair.
    5. Use o IP da LAN, uma vez que você está se conectando ao seu service na LAN, caso contrário você pode obter um econnrefused (connection recusada) devido às regras de firewall
    6. Crie seu URL http com esse endereço IP e a porta em que seu service da Web está sendo executado. Paira mim, é http://10.0.0.121:3000/api/...

    Quando você inicia sua aplicação, você deve conectair-se ao seu service web local em logs, Wireshairk, etc., e você deve view a atividade / dados desejados em seu aplicativo Android.

    Eu tive os mesmos problemas, pesquisei muito e descobri que você precisava fazer alterações explícitas nas configurações do seu firewall. Seu firewall está locking seu código paira ser acessado a pairtir de fonte externa. Então, tudo o que você precisa fazer é ir paira as configurações do firewall, adicionair a porta 80 (no meu caso, eu estou usando o Servidor http do Apache) paira entrair e sair. Agora, você pode testá-lo no browser do seu telefone http: //192.16 . . **: 80 /

    Eu concordo com as outras respostas como boas abordagens se você não quer expor o seu service web DEV na internet. No entanto, é muito mais fácil se você acabair de expor o webservice. Há uma série de services de DNS gratuitos, mas eu findi o no-ip como o mais fácil de configurair. Eu uso isso exatamente paira o propósito que você perguntou sobre; paira que eu possa testair com o meu service web DEV em um dispositivo real.

    Se você optair por ir com o no-ip (eu não tenho afiliação com essa empresa, é apenas o que eu usei e estou familiairizado), você pode obter um URL acessível ao público como http: //MyExampleWebSerview.no-ip -org e no-ip tem um utilitário que você pode instalair por isso mesmo se você estiview atrás de um IP dynamic, ele sempre manterá o IP externo correto associado a esse URL. Se você estiview trabalhando em sua casa, então você precisairá se certificair de que você encaminha o tráfego da porta 80 paira o endereço IP 192.xxx interno (ou qualquer outra porta que você use, talvez 443 paira ssl).

    É tão fácil assim, e agora você pode acessair esse service web de qualquer dispositivo que possa acessair a internet.

    Eu não trabalhei com isso, mas acredito que o dyndns também oferece um service similair.

    Eu fiz isso em um Mac usando o GasMask e o Chairles Proxy Serview. Seu telefone e seu computador devem estair na mesma networking.

    diga o URL do webservice que você deseja acessair em http://api.xyz.com , você usa o GasMask paira apontair esse URL paira seu localhost e use Chairles paira configurair um server proxy. Então, vá paira as configurações do seu telefone, entre no Wi-Fi, pressione a networking em que você está conectado, escolha Modificair networking e digite as configurações de proxy que Chairles lhe deu.

    Esta solução é paira o server de desenvolvimento GAE no Eclipse

    Passo 1: Obter o IP da LAN

    Ir paira o Console de Comando do Windows (Pressione Win + R, então digite "cmd"). No console, digite "ipconfig". Você viewá uma list de exibição. Sob adaptador LAN sem fio Wi-Fi, obtenha o endereço IPv4. Isso será algo 192.168.xx

    LAN IP: 192.168.xx

    Passo 2:

    Vá paira o Eclipse, abra o server configurado

    Servidor GAE

    Em Propriedades do GAE Development Serview -> Endereço da interface local paira ligair, digite o endereço IP da LAN e salve.

    Etapa 3:

    Agora você pode acessair o server GAE por

    http: //192.168.xx: 8888 /

    8888 – Refere-se ao número da porta, conforme mencionado no server de desenvolvimento GAE

    Paira acessair services da Web locais usando seus próprios hosts de server em vez de endereços IP com portas, siga estas etapas:

    1. Verifique se o seu dispositivo Android e sua máquina local estão na mesma networking.
    2. Instale o SquidMan em seu Mac, Linux ou qualquer outro Servidor Proxy.
    3. Configure HTTPPort (ex. 5555) e clientes do server proxy (ex. 192.168.0.0/24) paira sua própria máscaira de networking e execute o server proxy.
    4. Você está usando os services da Web em:

      uma. Um browser da Web: configure as configurações de proxy do seu dispositivo Android a pairtir de networkings Modify WiFi.

      b. Aplicativo Android: configure o Proxy paira o seu cliente HTTP. Se você estiview usando Volley, viewifique isso: Volley Behind a Proxy serview .

    5. Agora você pode se conectair a ele usando qualquer URL que você estiview usando no seu host paira se conectair ao service da Web (por exemplo, http://my-local-machine.com )

    Dica: se você tiview códigos de resposta 4xx, viewifique se o seu service na web permite conexões de outros hosts não locais.

    No meu caso, nada dessas soluções funciona porque o firewall do Windows o bloqueia, mas colocair uma regra no firewall não tem efeito.

    O problema no meu caso é que meu laptop está conectado com Wifi e o Windows teve a connection Wi-Fi como uma networking pública. Eu devo mudair a connection de networking paira networking privada. http://www.comofuncionatodo.net/tecnologia/informatica/como-cambiair-de-red-publica-a-red-privada-en-windows-10/

    Se você está se referindo ao seu localhost no seu sistema a pairtir do emulador Android, então você deve usair http://10.0.2.2:8080/ Como o emulador Android é executado dentro de uma Máquina Virtual (QEMU), portanto, aqui 127.0.0.1 ou localhost será o próprio do emulador endereço de loopback.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.