Wygląda na to, że naprawdę masz czas oczekiwania. Mówisz, że czasami działa ... Czy masz problem z odbiorem swojej sieci 3G (lub innej używanej przez Ciebie) w Twojej okolicy?
Jeśli surfujesz w Internecie z tej samej lokalizacji, a strony nie ładują odświeżania i przekroczenia limitu czasu, to prawdopodobnie jest to Twój problem.
Spróbuj, gdzie wiesz, że odbiór jest dobry. Możesz ominąć ten problem, łapiąc wyjątek i ponawiając wysyłanie wiadomości jeszcze kilka razy, zanim pojawi się wiadomość, że wiadomość nie mogła zostać wysłana lub takie. Jeszcze lepiej byłoby zapisać historię niewysłanych wiadomości, aby użytkownik mógł je później wysłać ponownie. Oczywiście zakładam, że wysłanie wiadomości jest oparte na użytkowniku. Jeśli nie, możesz od czasu do czasu sprawdzić odbiór danych (co kilka minut), a następnie ponownie wysłać, jeśli będzie wystarczająco dobry, aż przejdzie.
Mam nadzieję, że pomogłem.
jakie błędy są uzyskiwanie? – Lucifer
Działa w niektórych przypadkach, ale w wielu przypadkach otrzymuję komunikat java.net.SocketException: Operacja przekroczyła limit czasu – Sando
, a następnie zwiększ limit czasu za pomocą metody setConnectTimeout(); – Lucifer