Android中判断网络是否可用的代码分享

来源:互联网 发布:软件行业发展趋势 编辑:程序博客网 时间:2024/06/03 19:25
import android.content.Context; import android.net.ConnectivityManager;import android.net.NetworkInfo; import android.telephony.TelephonyManager;     /**      * Created by hackcoder on 15-1-25.       */public class NetWorkUtils {         /**           * 判断是否有网络连接          * @param context               * @return               */    public static boolean isNetworkConnected(Context context) {         if (context != null) {                       ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);             NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();             if (mNetworkInfo != null) {                 return mNetworkInfo.isAvailable();             }         }         return false;     }         /**      * 判断WIFI网络是否可用      * @param context      * @return      */    public static boolean isWifiConnected(Context context) {         if (context != null) {             ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);             NetworkInfo mWiFiNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);             if (mWiFiNetworkInfo != null) {                 return mWiFiNetworkInfo.isAvailable();             }         }         return false;     }         /**      * 判断MOBILE网络是否可用      * @param context      * @return      */    public static boolean isMobileConnected(Context context) {         if (context != null) {             ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);             NetworkInfo mMobileNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);             if (mMobileNetworkInfo != null) {                 return mMobileNetworkInfo.isAvailable();             }         }         return false;     }         /**      * 获取当前网络连接的类型信息      * @param context      * @return      */    public static int getConnectedType(Context context) {         if (context != null) {             ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);             NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();             if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {                 return mNetworkInfo.getType();             }         }         return -1;     }         /**      * 获取当前的网络状态 :没有网络0:WIFI网络1:3G网络2:2G网络3      *      * @param context      * @return      */    public static int getAPNType(Context context) {         int netType = 0;         ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);         NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();         if (networkInfo == null) {             return netType;         }         int nType = networkInfo.getType();         if (nType == ConnectivityManager.TYPE_WIFI) {             netType = 1;// wifi         } else if (nType == ConnectivityManager.TYPE_MOBILE) {             int nSubType = networkInfo.getSubtype();             TelephonyManager mTelephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);             if (nSubType == TelephonyManager.NETWORK_TYPE_UMTS && !mTelephony.isNetworkRoaming()) {                 netType = 2;// 3G             } else {                 netType = 3;// 2G             }         }         return netType;     } } package cn.hackcoder.beautyreader.broadcast; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.util.Log; import android.widget.Toast; import cn.hackcoder.beautyreader.activity.base.BaseActivity; import cn.hackcoder.beautyreader.utils.NetWorkUtils; public class NetWorkStatusReceiver extends BroadcastReceiver { public NetWorkStatusReceiver() { } @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) { Toast.makeText(context, "network changed", Toast.LENGTH_LONG).show(); BaseActivity.isNetWorkConnected = NetWorkUtils.getAPNType(context)>0; } } }注册:<receiver    android:name=".broadcast.NetWorkStatusReceiver"   android:enabled="true"   android:exported="true">    <intent-filter>      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />    </intent-filter>  </receiver> 


                                             
0 0