Parece que realmente está teniendo un tiempo de espera. Usted dice que a veces funciona ... ¿Tiene un problema de recepción con su red de datos 3G (o lo que sea que esté usando) en su área?
Si navega por Internet desde la misma ubicación y las páginas no cargan la actualización y el tiempo de espera, entonces ese es probablemente su problema.
Prueba donde sabes que la recepción es buena. Puede omitir este problema al capturar la excepción y volver a intentar el envío del mensaje unas cuantas veces más antes de mostrarle al usuario que el mensaje no pudo ser enviado o tal. Mejor aún sería guardar un historial de mensajes no enviados para que el usuario pueda volver a enviarlos más tarde. Por supuesto, estoy asumiendo que el envío del mensaje es impulsado por el usuario. De lo contrario, puede verificar la recepción de datos de vez en cuando (cada pocos minutos) y luego volver a enviar cuando sea suficiente hasta que se complete.
Espero que haya ayudado.
lo errores que está recibiendo? – Lucifer
Funciona en algunos casos, pero en muchos casos, iam obtiene java.net.SocketException: la operación agotó el tiempo de espera – Sando
y luego aumenta el tiempo de espera utilizando setConnectTimeout(); – Lucifer