Ich schreibe eine App, die über WLAN mit einem Telnet-Server verbunden ist. Ich habe einen Dienst, der die Socket-Verbindung verwaltet. Es funktioniert alles gut, aber wenn das Telefon schläft, wird die WLAN-Verbindung getrennt, wodurch die Socket-Verbindung unterbrochen wird (und eine SocketException ausgelöst wird).
Ich habe das Gefühl, dass ich in der Lage sein sollte, einen Broadcast-Empfänger einzurichten, dessen onResume () -Methode aufgerufen wird, wenn die WLAN-Netzwerkverbindung verloren geht, wodurch ich den Socket elegant herunterfahren und neu öffnen kann Das Netzwerk wird sofort wieder verbunden. Aber ich kann im Doc oder über die Suche nichts dergleichen finden.
Service-Code ist hier, wenn Sie es wollen, danke für die Hilfe, ich schätze es wirklich!
%Vor% Registrieren Sie ein BroadcastReceiver
für ConnectivityManager.CONNECTIVITY_ACTION. Im onReceive
-Handler können Sie NetworkInfo info = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO)
und dann info.getType()
aufrufen und nach ConnectivityManager.TYPE_WIFI
suchen und dann tun, was Sie wollen. :)
Ich weiß, dass dies eine alte Frage ist, aber sehen Sie sich die folgende Entwicklerdokumentation an:
Ich bin mir nicht sicher, wie das genau geht, aber ich denke, der ConnectivityManager wäre ein guter Anfang.
Sie können eine Instanz dieser Klasse abrufen, indem Sie Context.getSystemService(Context.CONNECTIVITY_SERVICE)
Es gibt auch einige andere gute Klassen in android.net, die Sie verwenden können.
Ich hoffe, das hilft.
Tags und Links android