Android检测是否有网络的代码
jopen
10年前
主要是用来检测是否有网络,如果没有,就去wifi里面去进行设置网络。。。
下面贴一下主要代码:
private void checkNetWorkInfo() { if (!Tools.isNetworkAvailable(this)) { new AlertDialog.Builder(this) .setTitle("提示!") .setIcon(android.R.drawable.ic_dialog_info) .setMessage("检测到你还没开启网络,请开启") .setNegativeButton("取消", null) .setPositiveButton("开启", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { startActivity(new Intent( Settings.ACTION_WIRELESS_SETTINGS));// 进入无线网络配置界面 startActivity(new Intent( Settings.ACTION_WIFI_SETTINGS)); // 进入手机中的wifi网络设置界面 } }).show(); } }
isNetworkAvailable里面的代码:
/* * 判断是否有网络 */ public static boolean isNetworkAvailable(Context context) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); if (cm == null) { return false; } else { // 打印所有的网络状态 NetworkInfo[] infos = cm.getAllNetworkInfo(); if (infos != null) { for (int i = 0; i < infos.length; i++) { // Log.d(TAG, "isNetworkAvailable - info: " + // infos[i].toString()); if (infos[i].getState() == NetworkInfo.State.CONNECTED) { Log.d(TAG, "isNetworkAvailable - I " + i); } } } // 如果仅仅是用来判断网络连接 // 则可以使用 cm.getActiveNetworkInfo().isAvailable(); NetworkInfo networkInfo = cm.getActiveNetworkInfo(); if (networkInfo != null) { Log.d(TAG, "isNetworkAvailable - 是否有网络: " + networkInfo.isAvailable()); } else { Log.d(TAG, "isNetworkAvailable - 完成没有网络!"); return false; } // 1、判断是否有3G网络 if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) { Log.d(TAG, "isNetworkAvailable - 有3G网络"); return true; } else { Log.d(TAG, "isNetworkAvailable - 没有3G网络"); } // 2、判断是否有wifi连接 if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_WIFI) { Log.d(TAG, "isNetworkAvailable - 有wifi连接"); return true; } else { Log.d(TAG, "isNetworkAvailable - 没有wifi连接"); } } return false; }