• 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();
                }
            }
            
        }
    
    }
  • 相关阅读:
    不完全恢复用例
    全自动 TSPITR基于RMANSCN
    restore和recover的区别
    DG不同机器自己总结
    将10g RAC库用rman 的方式备份并恢复到异机 刚试验通过与大家分享
    Linux RH5平台下使用Oracle ASM创建数据库
    crs_stat状态失败后unregister掉相关进程
    ocr is not shared across all the nodes in the clus
    RMAN 备份与恢复 实例
    基于LINUX的Oracle+10G+RAC管理维护
  • 原文地址:https://www.cnblogs.com/deman/p/4647590.html
Copyright © 2020-2023  润新知