判断网络连接的是什么网络
来源:互联网 发布:死神面具淘宝 编辑:程序博客网 时间:2024/04/30 07:24
首先写一个NetWorkUtils
package com.bw.utils;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.telephony.TelephonyManager;public class NetWorkUtils { public static final int G3 = 3;// 3G public static final int G2 = 2;// 2G public static final int G4 = 4;// 4G public static final int WIFI = 5;// WIFI public static final int NO = 0;// 琛ㄧず娌℃湁缃戠粶杩炴帴 public static int GetNetworkType(Context context) { int strNetworkType = NO; NetworkInfo networkInfo = ((ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE)) .getActiveNetworkInfo(); if (networkInfo != null && networkInfo.isConnected()) { if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) { strNetworkType = WIFI; } else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) { String _strSubTypeName = networkInfo.getSubtypeName(); // Log.e("cocos2d-x", "Network getSubtypeName : " + // _strSubTypeName); // TD-SCDMA networkType is 17 int networkType = networkInfo.getSubtype(); switch (networkType) { case TelephonyManager.NETWORK_TYPE_GPRS: case TelephonyManager.NETWORK_TYPE_EDGE: case TelephonyManager.NETWORK_TYPE_CDMA: case TelephonyManager.NETWORK_TYPE_1xRTT: case TelephonyManager.NETWORK_TYPE_IDEN: // api<8 : replace by // 11 strNetworkType = G2; break; case TelephonyManager.NETWORK_TYPE_UMTS: case TelephonyManager.NETWORK_TYPE_EVDO_0: case TelephonyManager.NETWORK_TYPE_EVDO_A: case TelephonyManager.NETWORK_TYPE_HSDPA: case TelephonyManager.NETWORK_TYPE_HSUPA: case TelephonyManager.NETWORK_TYPE_HSPA: case TelephonyManager.NETWORK_TYPE_EVDO_B: // api<9 : replace by // 14 case TelephonyManager.NETWORK_TYPE_EHRPD: // api<11 : replace by // 12 case TelephonyManager.NETWORK_TYPE_HSPAP: // api<13 : replace by // 15 strNetworkType = G3; break; case TelephonyManager.NETWORK_TYPE_LTE: // api<11 : replace by // 13 strNetworkType = G4; break; default: if (_strSubTypeName.equalsIgnoreCase("TD-SCDMA") || _strSubTypeName.equalsIgnoreCase("WCDMA") || _strSubTypeName.equalsIgnoreCase("CDMA2000")) { strNetworkType = G3; } else { strNetworkType = NO; } break; } } } return strNetworkType; }}
然后在MainActivity
package com.bw.yangzhengzheng20160517;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.text.format.DateUtils;import android.widget.Toast;import com.bw.utils.NetWorkUtils;public class MainActivity extends Activity { private int flag=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); startThread(); } /** * @先判断网络连接的类型 然后在做请求处理 * */ public void startThread() { // 获得网络状态的值 int type = NetWorkUtils.GetNetworkType(MainActivity.this); if (type == NetWorkUtils.WIFI) {// 判断是否是WIFI连接 Toast提示 if (flag == 0) { // 因为推荐是作为首页出现的 Toast提示只作为第一次进入时才显示 所以加了一个flag标记 Toast.makeText(MainActivity.this, "您当前使用的是WIFI数据连接.....", -10) .show(); flag++;// 让标记++ } requestData();// 线程重新请求数据 } else if (type == NetWorkUtils.G2 || type == NetWorkUtils.G3 || type == NetWorkUtils.G4) { //isFirst("移动"); if (flag == 0) { // 因为推荐是作为首页出现的 Toast提示只作为第一次进入时才显示 所以加了一个flag标记 Toast.makeText(MainActivity.this, "您当前使用的是移动数据连接.....", -10).show(); flag++;// 让标记++ } requestData();// 线程重新请求数据 } else if (type == NetWorkUtils.NO) { Toast.makeText(MainActivity.this, "网络未连接,请检查网络状态......", -10) .show(); } }}
最后在 清单文件里加权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
0 0
- 判断网络连接的是什么网络
- Android判断网络是否连接,跳转到设置页面以及判断连接的是什么网络
- Android判断网络是否连接,跳转到设置页面以及判断连接的是什么网络
- 判断网络的连接
- 网络连接的判断
- 判断网络状态是什么
- Android网络连接的判断
- android网络连接的判断
- android网络连接的判断
- Android的网络连接判断
- android 网络连接的判断
- Android网络连接的判断
- android 网络连接的判断
- android 网络连接的判断
- android 网络连接的判断
- Android 网络连接的判断
- android 网络连接的判断
- android 网络连接的判断
- 小白菜第一次接触ECSHOP模板感言
- MFC 控件关联变量
- 一步一步在ubuntu上安装即时通讯服务器-Openfire
- 常用资源镜像站收集整理-android镜像_eclipse镜像_Ubuntu镜像_CentOS镜像收集
- String、StringBuffer与StringBuilder之间区别
- 判断网络连接的是什么网络
- Jacoco覆盖率工具使用之maven篇
- android studio配置记录
- 前后端交互返回格式设计
- 关于并发用户数的思考-通过PV量换算并发
- AWR 使用
- 单点登录SSO的实现原理
- C++与C#数据转换
- QT中自定义事件