Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/07/2013, 02:11
DoHITB
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 8 meses
Puntos: 33
Respuesta: obtener el valor de un archivo txt alojado en un host

Hola,

Yo tuve también problemas con las conexiones a internet, e investigando logré arreglarlo.

Si estás programando con un target alto (supongo), al intentar acceder a internet te dará una excepción.

Ésta "salta" porque a partir de cierta versión, Android no permite que se lancen peticiones en el hilo principal.

Para evitar que se te lance la excepción, tendrás que hacer uso de AsyncTask.

Si estás intentando acceder a internet desde el hilo principal, entonces tendrás que usar AsyncTask, te hago un ejemplo rápido:

Código Java:
Ver original
  1. public class MiClase extends AsyncTask<Params, Progress, Return>{
  2. /*
  3. Params, Progress y Return tienen que ser un tipo de objeto (String, Boolean, ...)
  4.  
  5. Params es una lista de entrada
  6. Progress es un valor de progreso
  7. Return será el tipo de retorno
  8. */
  9.  
  10.   protected Return doInBackground(Params ... params){
  11.     //aquí el código que acceda a internet
  12.   }
  13. }

Como tú accedes a una URL y (en teoría) retornas un String, podrías hacer:

Código Java:
Ver original
  1. public class MiClase extends AsyncTask<String, Float, String>{
  2. /*
  3. Params, Progress y Return tienen que ser un tipo de objeto (String, Boolean, ...)
  4.  
  5. Params es una lista de entrada
  6. Progress es un valor de progreso
  7. Return será el tipo de retorno
  8. */
  9.  
  10.   protected String doInBackground(String ... params){
  11.      /*
  12. aquí deberías llamar al código que tienes entre try y catch. Puedes meterlo en un método estático (por ejemplo), y que reciba como parámetros un String (que será la dirección a acceder). El retorno lo haces de tipo String, y haces que devuelva el contenido que lee de la web.
  13.     */
  14.   }
  15. }

Una vez hecho esto, desde donde quieras acceder a internet tendrías que hacer:

Código Java:
Ver original
  1. String retornoDeInternet = new MiClase().execute("url a acceder").get();

Y si no me he equivocado al escribir, todo debería salir bien.

Debes tener en cuenta lo que dice @razpeitia, y darle los permisos de internet a la aplicación.

Espero que te sirva

Saludos!