android之检測是否有网络
主要是用来检測是否有网络,假设没有,就去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; }