android判断网络连接状态
16lz
2021-01-23
/** * 检测网络状态 * http://www.cnblogs.com/qingblog/archive/2012/07/19/2598983.html * @return */ public boolean hasIntener() { ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); NetworkInfo networkInfo = cm.getActiveNetworkInfo(); if(networkInfo != null) { return networkInfo.isAvailable(); } return false; } /** * 检测wifi状态 * @return */ public boolean checkWifi() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if(networkInfo != null) { return networkInfo.isAvailable(); } return false; } /** * 检测GPRS连接是否可用 * @return */ public boolean checkMobile() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if(networkInfo != null) { return networkInfo.isAvailable(); } return false; } /** * 获取当前的网络状态 -1:没有网络 1:WIFI网络2:wap网络3:net网络 * @return */ public int getNetworkType() { ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); NetworkInfo networkInfo = cm.getActiveNetworkInfo(); if(networkInfo != null && networkInfo.isAvailable()) { if(networkInfo.getType() == ConnectivityManager.TYPE_WIFI) { return NET_WIFI; }else { switch (networkInfo.getSubtype()) { case TelephonyManager.NETWORK_TYPE_CDMA: case TelephonyManager.NETWORK_TYPE_GPRS: case TelephonyManager.NETWORK_TYPE_EDGE: case TelephonyManager.NETWORK_TYPE_1xRTT: case TelephonyManager.NETWORK_TYPE_IDEN: NetType = NET_2G; break; case TelephonyManager.NETWORK_TYPE_UMTS: case TelephonyManager.NETWORK_TYPE_HSDPA: case TelephonyManager.NETWORK_TYPE_EVDO_0: case TelephonyManager.NETWORK_TYPE_EVDO_A: case TelephonyManager.NETWORK_TYPE_EVDO_B: case TelephonyManager.NETWORK_TYPE_HSPA: case TelephonyManager.NETWORK_TYPE_EHRPD: case TelephonyManager.NETWORK_TYPE_HSPAP: case TelephonyManager.NETWORK_TYPE_LTE: NetType = NET_3G; break; case TelephonyManager.NETWORK_TYPE_UNKNOWN: default: NetType = NET_2G; break; } } return NetType; } return -1; } /** * 设置网络 * @param context */ public void setNet(final Context context) { //提示对话框 AlertDialog.Builder builder=new AlertDialog.Builder(context); builder.setTitle("网络设置提示").setMessage("网络连接不可用,是否进行设置?").setPositiveButton("设置", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Intent intent=null; //判断手机系统的版本 即API大于10 就是3.0或以上版本 if(android.os.Build.VERSION.SDK_INT>10){ intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS); }else{ intent = new Intent(); ComponentName component = new ComponentName("com.android.settings","com.android.settings.WirelessSettings"); intent.setComponent(component); intent.setAction("android.intent.action.VIEW"); } context.startActivity(intent); } }).setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }).show(); }
更多相关文章
- android 扫面无线网络
- Android 隐藏底部导航栏和状态栏,动态调用导航栏,键盘收回时也收
- android 网络请求图片
- [Android] 监听系统网络连接打开或者关闭的消息
- Android判断当前正在通话(电话呼入)的状态
- Android Get Network Type获得网络类型
- android判断网络
- Android 监听网络变化