Home » Android » android – How to be notified on wifi network status change?

android – How to be notified on wifi network status change?

Posted by: admin June 15, 2020 Leave a comment

Questions:

I am writing an app that connects to a telnet server via wifi. I have a service that manages the socket connection. It all works fine, but when the phone sleeps it disconnects the wifi radio, which causes the socket connection to break (and throws a SocketException).

I feel like I should be able to set up a a broadcast receiver whose onResume() method is called when the wifi network connection is lost, and that would allow me to gracefully shut down the socket, and re-open it if the network is immediately re-connected. But I can’t find anything like that in the doc or via searching.

Service code is here if you want it, thanks for the help, I really appreciate it!

How to&Answers:

Register a BroadcastReceiver for ConnectivityManager.CONNECTIVITY_ACTION. In the onReceive handler you can call NetworkInfo info = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO) and then info.getType() and check for ConnectivityManager.TYPE_WIFI and do what you want then. 🙂

Answer:

*set these permissions in your manifest

*Register a BroadcastReceiver for these actions filters in your manifest

*Define your BroadcastReceiver´s implementation

Answer:

I know this is an old question but see the following developer documentation:

http://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html

Answer:

Not sure as to the exact way to do this but I think the ConnectivityManager would be a good place to start.

http://developer.android.com/reference/android/net/ConnectivityManager.html

you can get an instance of this class by calling Context.getSystemService(Context.CONNECTIVITY_SERVICE)

There are also some other good classes in android.net that you can use.

Hope that helps.