Zaimplementowałem gniazdo w mojej aplikacji i oczywiście komunikuje się ono z serwerem, a moim problemem jest to, że nie jestem w stanie zidentyfikować, kiedy gniazdo ulegnie awarii w następujących scenariuszach.
1) Jestem połączony z siecią Wi-Fi, mając aktywne połączenie z Internetem i aktywne połączenie z gniazdem, a moje połączenie z Internetem nie działa
2) gdy jestem podłączony do połączenia internetowego 2g / 3g, czasami połączenie z gniazdem nie działa
W powyższych warunkach nie jestem w stanie stwierdzić, czy istnieje aktywne połączenie z gniazdem. Czy jest jakiś sposób na osiągnięcie tego w Androidzie?
proszę pomóż...
Odpowiedzi:
0 dla odpowiedzi № 1Spójrz na Androida Określanie i monitorowanie statusu łączności:
Możesz użyć Menedżer połączeń aby sprawdzić, czy rzeczywiście masz połączenie z Internetem, a jeśli tak, to jaki typ połączenia jest dostępny.
Oto przykładowy kod:
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnectedOrConnecting();
Również,
ConnectivityManager rozgłaszaCONNECTIVITY_ACTION („android.net.conn.CONNECTIVITY_CHANGE”) działanie, gdy zmieniają się szczegóły połączenia. Możesz zarejestrować odbiornik rozgłoszeniowy w swoim manifeście, aby nasłuchiwać tych zmian i odpowiednio wznowić (lub zawiesić) aktualizacje w tle.
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>