网路状态判断
来源:互联网 发布:win10制作mac os启动盘 编辑:程序博客网 时间:2024/06/03 10:47
/** 没有网络 */public static final int NETWORKTYPE_INVALID = 0;/** wap网络 */public static final int NETWORKTYPE_WAP = 1;/** 2G网络 */public static final int NETWORKTYPE_2G = 2;/** 3G和3G以上网络,或统称为快速网络 */public static final int NETWORKTYPE_3G = 3;/** wifi网络 */public static final int NETWORKTYPE_WIFI = 4;private static int mNetWorkType;/** * 获取网络状态,wifi,wap,2g,3g. * * @param context * 上下文 * @return int 网络状态 {@link #NETWORKTYPE_2G},{@link #NETWORKTYPE_3G}, * * {@link #NETWORKTYPE_INVALID},{@link #NETWORKTYPE_WAP}* * <p> * {@link #NETWORKTYPE_WIFI} */public static boolean isFastMobileNetwork(Context context) { TelephonyManager telephonyManager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); switch (telephonyManager.getNetworkType()) { case TelephonyManager.NETWORK_TYPE_1xRTT: return false; // ~ 50-100 kbps case TelephonyManager.NETWORK_TYPE_CDMA: return false; // ~ 14-64 kbps case TelephonyManager.NETWORK_TYPE_EDGE: return false; // ~ 50-100 kbps case TelephonyManager.NETWORK_TYPE_EVDO_0: return true; // ~ 400-1000 kbps case TelephonyManager.NETWORK_TYPE_EVDO_A: return true; // ~ 600-1400 kbps case TelephonyManager.NETWORK_TYPE_GPRS: return false; // ~ 100 kbps case TelephonyManager.NETWORK_TYPE_HSDPA: return true; // ~ 2-14 Mbps case TelephonyManager.NETWORK_TYPE_HSPA: return true; // ~ 700-1700 kbps case TelephonyManager.NETWORK_TYPE_HSUPA: return true; // ~ 1-23 Mbps case TelephonyManager.NETWORK_TYPE_UMTS: return true; // ~ 400-7000 kbps case TelephonyManager.NETWORK_TYPE_EHRPD: return true; // ~ 1-2 Mbps case TelephonyManager.NETWORK_TYPE_EVDO_B: return true; // ~ 5 Mbps case TelephonyManager.NETWORK_TYPE_HSPAP: return true; // ~ 10-20 Mbps case TelephonyManager.NETWORK_TYPE_IDEN: return false; // ~25 kbps case TelephonyManager.NETWORK_TYPE_LTE: return true; // ~ 10+ Mbps case TelephonyManager.NETWORK_TYPE_UNKNOWN: return false; default: return false; }}/** * 获取网络的类型...如果是零代表没有网络 * @param context * @return */public static int getNetWorkType(Context context) { String str = null; ConnectivityManager manager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = manager.getActiveNetworkInfo(); if (networkInfo != null && networkInfo.isConnected()) { String type = networkInfo.getTypeName(); if (type.equalsIgnoreCase("WIFI")) { mNetWorkType = NETWORKTYPE_WIFI; } else if (type.equalsIgnoreCase("MOBILE")) { String proxyHost = android.net.Proxy.getDefaultHost(); mNetWorkType = TextUtils.isEmpty(proxyHost) ? (isFastMobileNetwork(context) ? NETWORKTYPE_3G : NETWORKTYPE_2G) : NETWORKTYPE_WAP; } } else { mNetWorkType = NETWORKTYPE_INVALID;//没有网络 } return mNetWorkType;}/** * 判断是否有网络连接.....http://www.jianshu.com/p/10ed9ae02775 * @param context * @return */public static boolean isNetworkConnected(Context context) { if (context != null) { // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理) ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); // 获取NetworkInfo对象 NetworkInfo networkInfo = manager.getActiveNetworkInfo(); //判断NetworkInfo对象是否为空 if (networkInfo != null) return networkInfo.isAvailable(); } return false;}/** * 网络无连接时跳转页面.....http://blog.csdn.net/cy524563/article/details/41686735 * @param context */public static void showNoNetWorkDlg(final Context context) { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle(R.string.app_name) // .setMessage("网络未连接,是否去设置") .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 跳转到系统的网络设置界面 Intent intent = null; // 先判断当前系统版本 if(android.os.Build.VERSION.SDK_INT > 10){ // 3.0以上 intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS); }else{ intent = new Intent(); intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings"); } context.startActivity(intent); } }) .setNegativeButton("取消", null) .show();}
阅读全文
0 0
- 网路状态判断
- 检测网路状态 Reachability
- Android基础_判断WIFI移动网络状态,打开WIFI和移动网路
- Android 实时网路监测类 步骤二(NetworkUtils 判断网络状态类)
- iOS 即时得到当前的网路状态
- iOS 即时得到当前的网路状态
- 关于android监听网路状态的代码
- Android知识点十二:receiver判断网路连接
- Android判断网路是否畅通加权限
- 判断有无网路无网跳转
- 线程状态判断
- tserversocket判断客户端状态
- 判断窗体状态
- 判断灯的状态
- 判断iphone网络状态
- c# 判断 按键 状态
- 判断网络连接状态
- 判断数据库连接状态
- ImageLoader--pizifusheng
- 进程间通信方式
- 李航博士的《浅谈我对机器学习的理解》
- http协议&Tomcat
- 购物车页面
- 网路状态判断
- okHttp拦截器的使用
- OkHttp3Util 带拦截器
- 这是学校第八章作业
- Unity3D调aar包
- [POJ1915] Knight Moves
- PDF预览之PDFObject.js总结
- 自定义拦截器1
- angularJS 增 删 查 排序