Aplicação Android(Celular) + Eclipse + WebService (Local no computador)

O WebService é feito em C# e consigo consumir sem problemas pois passo o ?WSDL (consigo consumir no Emulator).

Agora, uma coisa que não fiz foi definir um IP Fixo para minha máquina e testar por ele.
Talvés o aplicativo ao rodar pelo celular não esteja conseguindo encontrar este IP 10.0.2.2 certo?

provavelmente é isso sim, veja qual o ip da sua maquina e coloque.

Outra Dúvida,

Se o webService estiver rodando localmente no computador, e este computador estiver em um rotiador com IP Fixo definido, eu para acessar via wi-fi(do celular), teria de colocar o IP do rotiador no código certo?

Você coloca o ip que está no servidor.

Ok, Coloco o IP do computador pois o aplicativo não está em um servidor, está local.

Mas se eu tentar acessar via wi-fi, como funcionaria?
Teria de setar o IP da máquina ou o do Rotiador no código?

Obs. Rotiando o Computador para possibilitar o acesso ao webservice

IP da máquina que está seu WebService, pelo menos comigo funciona assim. E olha que já testei com roteador e como o meu celular android fazendo papel de roteador também rs.

Interessante, agradeço seu apoio brother, estou tendo um norte agora.
Assim que chegar em casa vou realizar este teste e posto aqui no forum o resultado.
Espero ajudar quem está ou irá passar por esta situação hehe

Até então muito obrigado!

Boa tarde,

Testei e não deu certo.
A aplicação funciona quando a emulo no virtual device, quando a executo direto no celular dá um erro de TimeOut. Estou utilizando o Ksoap2 para me conectar com um WebService.

Erro:
java.net.SocketTimeoutException: Connection timed out

Disparado quando tenta processar a seguinte linha:

HttpTransportSE androidHttpTransport = new HttpTransportSE(URL,5000);

esse 5000 é um tempo que coloquei para ver se passava mas não passou.

O que pode ser??

Você mudou o ip da maquina ? no emulador que ip tava ? o ip da maquina ?

Boa tarde Valeio,

Então, eu troquei o Ip.

coloquei o tempo maior e mudou a mensagem de erro:

java.net.ConnectException: 145.100.200.154/145.100.200.154:80 - Network is unreachable

O código é o seguinte:

private static final String METHOD_NAME = “busca”;
private static final String NAMESPACE = “http://tempuri.org/wsTeste/”;
private static final String SOAP_ACTION = “http://tempuri.org/wsTeste/busca”;

private static final String URL = "http://145.100.200.154/wsTeste/ws.asmx";  //Ip da máquina

String result = "";
	

public String Convert(String chapa) { 
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
    request.addProperty("chapa", "001522");

     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.dotNet = true; 
    envelope.setOutputSoapObject(request); 
    
    try { 
        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL,5000); 
        androidHttpTransport.call(SOAP_ACTION, envelope); 
        
        if(envelope.getResponse()!=null){             
        	SoapPrimitive response = (SoapPrimitive) envelope.getResponse();             
        	result = "NOME: " + response.toString();                     	
        } 
        
       
        return result.toString(); 
    } catch (Exception e) { 
        return e.getMessage(); 
    } 
}

Só uma informação:

O mesmo código é executado no Emulador (isto que acho estranho pois funciona no emulador.

Estou com o cabo conectado direto no celular/Computador.
Eu não estou via Wi-fi.

Neste caso, o celular consegue encontrar a rede? pois a mensagem é que ele não conseguiu encontrar, certo?

Cabo ? USB ? Oxe, não funciona não eu acho, tente conectar via wi-fi, o proprio aparelho do android consegue ser o roteador …

Estou com o cabo saindo do Celular conectando direto no Computador (Eclipse aberto em modo Debug).
Neste computador, existe um webService local. A rede é cabeada, não há um access point.

Amigão, me tire uma dúvida por favor.

Se ativar o Wi-fi do celular, no cenário descrito acima, eu consigo me conectar? tentei e não consegui.
Eu primeiramente precisaria estar autenticado nesta rede por wi-fi para conseguir o acesso ou não?

Assim, pelo menos lá em casa dá certo.

Meu aparelho, ele funciona como roteador de Wi-Fi, e lá em casa eu uso o notebook e me conecto com ele normalmente, uso internet e etc.
Então eu pego o ip da maquina, configuro na minha aplicação e pronto.

O meu celular tem também esta fução de rotear com duas opções: ancoragem USB e Ponto de acesso Wi-Fi.

Pelo que estou entendendo, você utilizou seu note para ser o Access Point e se conectou por wi-fi com o celular, então é por isto que passa.

No notebook, você chegou a criar uma rede local ou você joga seu notebook para um switch para este difundir o sinal?

Não fiz nada, apenas conectei e vi o ip e funcionou, mas aqui na empresa tem wi-fi e funcionou também. O pior que essa parte de redes eu não entendo :stuck_out_tongue: Mas simplificando, se você tem o servidor e o celular na mesma rede, vai funcionar.

Ahh entendi, não esquenta brother, tá ajudando muito!

Eu vou montar este cenário e postar aqui o mais rápido possível.

manda ai tou curioso pra saber…

Boa tarde Pessoal,

Retornando. Deu certo!

Eu deixo aí um agradecimento especial ao Valeio que me ajudou muito.

Montei o seguinte cenário:

Infra:
Computador com Ip Fixo setado em sua placa de rede + WebService executando localmente + Access Point para propagar uma rede criada.

Android:
No aplicativo, eu tirei aquele IP do Emulator (10.0.2.2) e adicionei o definido na placa de rede do computador.

Então, funcionou.

É cláro que você terá de se conectar à sua rede criada para que isto execute.
Neste momento, o celular não está com o cabo USB conectado ao computador, está apenas via Wi-Fi =)

Um abraço a todos, Deus abençoe!