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 originalpublic class MiClase extends AsyncTask<Params, Progress, Return>{
/*
Params, Progress y Return tienen que ser un tipo de objeto (String, Boolean, ...)
Params es una lista de entrada
Progress es un valor de progreso
Return será el tipo de retorno
*/
protected Return doInBackground(Params ... params){
//aquí el código que acceda a internet
}
}
Como tú accedes a una URL y (en teoría) retornas un String, podrías hacer:
Código Java:
Ver originalpublic class MiClase
extends AsyncTask
<String,
Float, String
>{ /*
Params, Progress y Return tienen que ser un tipo de objeto (String, Boolean, ...)
Params es una lista de entrada
Progress es un valor de progreso
Return será el tipo de retorno
*/
/*
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.
*/
}
}
Una vez hecho esto, desde donde quieras acceder a internet tendrías que hacer:
Código Java:
Ver originalString 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!