android how to get indicate when the internet connection is lost?

后端 未结 4 1046
忘掉有多难
忘掉有多难 2020-12-09 04:44

I\'m developing an android application and I want to get a notification when the internet (wifi or packet data connection) connection is lost. On my approach I can get the s

4条回答
  •  北海茫月
    2020-12-09 05:14

    use following code:

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import classes.NetworkUtil;
    
    public class NetworkChangeReceiver extends BroadcastReceiver {
    
            @Override
            public void onReceive(final Context context, final Intent intent) {
    
                boolean IsConnected = NetworkUtil.getConnectivityStatusString(context);
               // Toast in here, you can retrieve other value like String from NetworkUtil
               // but you need some change in NetworkUtil Class
            }
        }
    

    and NetworkUtil is:

    package classes;
    
    import android.content.Context;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    
    public class NetworkUtil {
    
        public static int TYPE_WIFI = 1;
        public static int TYPE_MOBILE = 2;
        public static int TYPE_NOT_CONNECTED = 0;
    
    
        public static int getConnectivityStatus(Context context) {
            ConnectivityManager cm = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
    
            NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
            if (null != activeNetwork) {
                if(activeNetwork.getType() == ConnectivityManager.TYPE_WIFI)
                    return TYPE_WIFI;
    
                if(activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE)
                    return TYPE_MOBILE;
            } 
            return TYPE_NOT_CONNECTED;
        }
    
        public static boolean getConnectivityStatusString(Context context) {
            int conn = NetworkUtil.getConnectivityStatus(context);
            boolean status = false ;
            if (conn == NetworkUtil.TYPE_WIFI) {
                status = true;
            } else if (conn == NetworkUtil.TYPE_MOBILE) {
                status = true; 
            } else if (conn == NetworkUtil.TYPE_NOT_CONNECTED) {
                status = false;
            }
            return status;
        }
    }
    

    and in manifest file:

     
                
                    
                
            
    

    and this permission:

     
    

提交回复
热议问题