Search code examples
javaandroidbroadcastreceiverandroid-broadcastreceiver

How to check Internet connection in android every N seconds


I want to check state of Internet connection every N seconds how I can do it

I want to send mail when received SMS in android device


Solution

  • Check internet connection every N seconds:

    Create a NetworkUtils with isNetworkAvailable() method that returns true or false according to connection status:

    import android.content.Context;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    
    public class NetworkUtils {
        public static boolean isNetworkAvailable(Context context) {
            ConnectivityManager connectivityManager
                    = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
            return activeNetworkInfo != null && activeNetworkInfo.isConnected();
        }
    }
    

    Create a CheckConnection() class that checks the connection every N seconds:

    class CheckConnection extends TimerTask {
        private Context context;
        public CheckConnection(Context context){
            this.context = context;
        }
        public void run() {
            if(NetworkUtils.isNetworkAvailable(context)){
                //CONNECTED
            }else {
                //DISCONNECTED
            } 
        }
    }
    

    You can use CheckConnection class from your activity like:

    Timer timer = new Timer();
    final int MILLISECONDS = 5000; //5 seconds
    timer.schedule(new CheckConnection(this), 0, MILLISECONDS);
    

    Hope this helps!