获取网络信息需要在AndroidManifest.xml文件中加入相应的权限。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
1)判断是否有网络连接
- public boolean isNetworkAvailable(Context context)
- {
- ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
- if (connectivity == null)
- {
- Log.i("NetWorkState", "Unavailabel");
- return false;
- }
- else
- {
- NetworkInfo[] info = connectivity.getAllNetworkInfo();
- if (info != null)
- {
- for (int i = 0; i < info.length; i++)
- {
- if (info[i].getState() == NetworkInfo.State.CONNECTED)
- {
- Log.i("NetWorkState", "Availabel");
- return true;
- }
- }
- }
- }
- return false;
- }
2)判断WIFI网络是否可用
- public 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;
- }
3)判断MOBILE网络是否可用
- public 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;
- }
4)获取当前网络连接的类型信息
- public static int getConnectedType(Context context)
- {
- if (context != null)
- {
- ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo mNetworkInfo = ConnectivityManager.getActiveNetworkInfo();
- if (mNetworkInfo != null && mNetworkInfo.isAvailable())
- {
- return mNetworkInfo.getType();
- }
- }
- return -1;
- }