• android network develop(2)----network status check


    Check & Get network status

    Normally, there will be two type with phone network: wifi & mobile(gprs,3g,4fg)

    So, we have can test connect and get the connect type.

    1.check connect:

        public static boolean isOnline(Context context)
        {
            ConnectivityManager connMgr = (ConnectivityManager) 
                    context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
            return (networkInfo != null && networkInfo.isConnected());
        }

    2.get connect type:

        public static NetWorkStatus traceConnectStatus(Context context) {
            
            NetWorkStatus mStatus = NetWorkStatus.INVALID;
            ConnectivityManager connMgr = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = connMgr
                    .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
            boolean isWifiConn = networkInfo.isConnected();
            networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
            boolean isMobileConn = networkInfo.isConnected();
            
            if (isMobileConn) {
                if (isWifiConn) {
                    mStatus = NetWorkStatus.BOTH;
                } else {
                    mStatus = NetWorkStatus.GPRS;
                }
            } else {
                if (isWifiConn) {
                    mStatus = NetWorkStatus.WIFI;
                } else {
                    mStatus = NetWorkStatus.INVALID;
                }
            }
            return mStatus;
        }

    3.connect status changed:

    there is an intent we can listener. "android.net.conn.CONNECTIVITY_CHANGE"

    package com.joyfulmath.androidstudy.connect;
    
    import java.lang.ref.WeakReference;
    
    import com.joyfulmath.androidstudy.TraceLog;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    
    public class NetWorkUtils {
        
        public static final String CONNECTIVITY_CHANGE_ACTION = "android.net.conn.CONNECTIVITY_CHANGE";
        public enum NetWorkStatus{
            INVALID,GPRS,WIFI,BOTH
        }
        private WeakReference<Context> mWeakContext = null;
        private ConnectReceiver mConReceiver = null;
    //    private NetWorkStatus mNetWorkStatus = NetWorkStatus.INVALID;
        
        public static NetWorkStatus traceConnectStatus(Context context) {
            
            NetWorkStatus mStatus = NetWorkStatus.INVALID;
            ConnectivityManager connMgr = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = connMgr
                    .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
            boolean isWifiConn = networkInfo.isConnected();
            networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
            boolean isMobileConn = networkInfo.isConnected();
            
            if (isMobileConn) {
                if (isWifiConn) {
                    mStatus = NetWorkStatus.BOTH;
                } else {
                    mStatus = NetWorkStatus.GPRS;
                }
            } else {
                if (isWifiConn) {
                    mStatus = NetWorkStatus.WIFI;
                } else {
                    mStatus = NetWorkStatus.INVALID;
                }
            }
            return mStatus;
        }
        
        public static boolean isOnline(Context context)
        {
            ConnectivityManager connMgr = (ConnectivityManager) 
                    context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
            return (networkInfo != null && networkInfo.isConnected());
        }
        
        
        public NetWorkUtils(Context context)
        {
            mWeakContext = new WeakReference<Context>(context);
        }
        
    
        public void registerConnectReceiver() {
            if (mWeakContext.get() != null) {
                
                if (mConReceiver == null) {
                    mConReceiver = new ConnectReceiver();
                }
                IntentFilter filter = new IntentFilter();
                filter.addAction(CONNECTIVITY_CHANGE_ACTION);
                filter.setPriority(1000);
                mWeakContext.get().registerReceiver(mConReceiver, filter);
            }
    
        }
        
        public void unRegisterConnectReceiver()
        {
            if(mWeakContext.get()!=null && mConReceiver!=null)
            {
                mWeakContext.get().unregisterReceiver(mConReceiver);
                mConReceiver = null;
            }
    
        }
        
        private void connectChanged()
        {
            if(mWeakContext.get()!=null)
            {
                NetWorkStatus status = traceConnectStatus(mWeakContext.get());
                TraceLog.i("status:"+status);
            }
        }
        
        public class ConnectReceiver extends BroadcastReceiver{
    
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                if(action!=null && action.equals(CONNECTIVITY_CHANGE_ACTION))
                {
                    connectChanged();
                }
            }
            
        }
    
    }
  • 相关阅读:
    opencv学习笔记7 重映射和仿射变换
    opencv学习笔记8 高斯金字塔,拉普拉斯金字塔,调整大小
    opencv学习笔记6 角点检测
    opencv学习笔记5 霍夫变换 漫水填充
    opencv学习笔记4 边缘检测
    opencv学习笔记3 滤波 形态学
    opencv学习笔记2 拖动条,亮度对比度 颜色空间缩减 鼠标事件
    opencv学习笔记1 加载图像 图像融合 分通道与合并
    URL编码表
    BUUCTF-[GWCTF 2019]我有一个数据库 1
  • 原文地址:https://www.cnblogs.com/deman/p/4647590.html
Copyright © 2020-2023  润新知