App网络管理 → AppNetworkMgr

这是一个用于Android平台的App网络管理工具类,能够获取当前设备的网络状态,并提供多种网络类型的识别功能,包括移动网络和Wi-Fi等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
  package com.jingewenku.abrahamcaijin.commonutil;
  import android.app.Activity;
  import android.content.ComponentName;
  import android.content.Context;
  import android.content.Intent;
  import android.net.ConnectivityManager;
  import android.net.NetworkInfo;
  import android.net.NetworkInfo.State;
   
  /**
  * 主要功能:App网络管理
  *
  * @Prject: CommonUtilLibrary
  * @Package: com.jingewenku.abrahamcaijin.commonutil
  * @author: AbrahamCaiJin
  * @date: 2017年05月03日 16:52
  * @Copyright: 个人版权所有
  * @Company:
  * @version: 1.0.0
  */
   
  public class AppNetworkMgr {
  //未找到合适匹配网络类型
  public static final int TYPE_NO = 0;
   
  //中国移动CMNET网络(中国移动GPRS接入方式之一, 主要为PC、笔记本电脑、PDA设立)
  public static final int TYPE_MOBILE_CMNET = 1;
   
  //中国移动CMWAP网络(中国移动GPRS接入方式之一,主要为手机WAP上网而设立)
  public static final int TYPE_MOBILE_CMWAP = 2;
   
  //中国联通UNIWAP网络(中国联通划分GPRS接入方式之一, 主要为手机WAP上网而设立)
  public static final int TYPE_MOBILE_UNIWAP = 3;
   
  //中国联通3GWAP网络
  public static final int TYPE_MOBILE_3GWAP = 4;
   
  //中国联通3HNET网络
  public static final int TYPE_MOBLIE_3GNET = 5;
   
  //中国联通UNINET网络(中国联通划分GPRS接入方式之一, 主要为PC、笔记本电脑、PDA设立)
  public static final int TYPE_MOBILE_UNINET = 6;
   
  //中国电信CTWAP网络
  public static final int TYPE_MOBILE_CTWAP = 7;
   
  //中国电信CTNET网络
  public static final int TYPE_MOBILE_CTNET = 8;
   
  //WIFI网络
  public static final int TYPE_WIFI = 10;
   
  /**
  * 获取当前手机连接的网络类型
  *
  * @param context 上下文
  * @return int 网络类型
  */
  public static int getNetworkState(Context context) {
  //获取ConnectivityManager对象
  ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  //获得当前网络信息
  NetworkInfo networkInfo = cm.getActiveNetworkInfo();
  if (networkInfo != null && networkInfo.isAvailable()) {
  //获取网络类型
  int currentNetWork = networkInfo.getType();
  //手机网络类型
  if (currentNetWork == ConnectivityManager.TYPE_MOBILE) {
  if(networkInfo.getExtraInfo() != null){
  if (networkInfo.getExtraInfo().equals("cmnet")) {
  AppLogMessageMgr.i("AppNetworkMgr", "当前网络为中国移动CMNET网络");
  return TYPE_MOBILE_CMNET;
  }
  if (networkInfo.getExtraInfo().equals("cmwap")) {
  AppLogMessageMgr.i("AppNetworkMgr", "当前网络为中国移动CMWAP网络");
  return TYPE_MOBILE_CMWAP;
  }
  if(networkInfo.getExtraInfo().equals("uniwap")) {
  AppLogMessageMgr.i("AppNetworkMgr", "当前网络为中国联通UNIWAP网络");
  return TYPE_MOBILE_UNIWAP;
  }
  if(networkInfo.getExtraInfo().equals("3gwap")) {
  AppLogMessageMgr.i("AppNetworkMgr", "当前网络为中国联通3GWAP网络");
  return TYPE_MOBILE_3GWAP;
  }
  if(networkInfo.getExtraInfo().equals("3gnet")) {
  AppLogMessageMgr.i("AppNetworkMgr", "当前网络为中国联通3GNET网络");
  return TYPE_MOBLIE_3GNET;
  }
  if(networkInfo.getExtraInfo().equals("uninet")) {
  AppLogMessageMgr.i("AppNetworkMgr", "当前网络为中国联通UNINET网络");
  return TYPE_MOBILE_UNINET;
  }
  if(networkInfo.getExtraInfo().equals("ctwap")) {
  AppLogMessageMgr.i("AppNetworkMgr", "当前网络为中国电信CTWAP网络");
  return TYPE_MOBILE_UNINET;
  }
  if(networkInfo.getExtraInfo().equals("ctnet")) {
  AppLogMessageMgr.i("AppNetworkMgr", "当前网络为中国电信CTNET网络");
  return TYPE_MOBILE_UNINET;
  }
  }
  //WIFI网络类型
  }else if (currentNetWork == ConnectivityManager.TYPE_WIFI) {
  AppLogMessageMgr.i("AppNetworkMgr", "当前网络为WIFI网络");
  return TYPE_WIFI;
  }
  }
  AppLogMessageMgr.i("AppNetworkMgr-->>NetworkUtils", "当前网络为不是我们考虑的网络");
  return TYPE_NO;
  }
   
  /**
  * 判断网络是否连接
  *
  * @param context 上下文
  * @return boolean 网络连接状态
  */
  public static boolean isNetworkConnected(Context context) {
  if (context != null) {
  ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
  //获取连接对象
  if (mNetworkInfo != null) {
  //判断是TYPE_MOBILE网络
  if(ConnectivityManager.TYPE_MOBILE == mNetworkInfo.getType()){
  AppLogMessageMgr.i("AppNetworkMgr", "网络连接类型为:TYPE_MOBILE");
  //判断移动网络连接状态
  State STATE_MOBILE = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
  if (STATE_MOBILE == State.CONNECTED) {
  AppLogMessageMgr.i("AppNetworkMgrd", "网络连接类型为:TYPE_MOBILE, 网络连接状态CONNECTED成功!");
  return mNetworkInfo.isAvailable();
  }
  }
  //判断是TYPE_WIFI网络
  if(ConnectivityManager.TYPE_WIFI == mNetworkInfo.getType()){
  AppLogMessageMgr.i("AppNetworkMgr", "网络连接类型为:TYPE_WIFI");
  //判断WIFI网络状态
  State STATE_WIFI = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
  if (STATE_WIFI == State.CONNECTED) {
  AppLogMessageMgr.i("AppNetworkMgr", "网络连接类型为:TYPE_WIFI, 网络连接状态CONNECTED成功!");
  return mNetworkInfo.isAvailable();
  }
  }
  }
  }
  return false;
  }
   
  /**
  * 判断网络是否连接
  *
  * @param activity Activity
  * @return boolean 网络连接状态
  */
  public static boolean isNetworkConnected(Activity activity){
  boolean falg = false;
  ConnectivityManager mConnectivityManager = (ConnectivityManager) activity.getApplicationContext().getSystemService("connectivity");
  if (mConnectivityManager == null){
  return falg;
  }
  NetworkInfo[] arrayOfNetworkInfo = mConnectivityManager.getAllNetworkInfo();
  if (arrayOfNetworkInfo != null){
  for (int j = 0; j < arrayOfNetworkInfo.length; j++){
  if (arrayOfNetworkInfo[j].getState() == State.CONNECTED){
  falg = true;
  break;
  }
  }
  }
  return falg;
  }
   
  /**
  * 打开网络设置界面
  *
  * @param activity Activity
  */
  public static void openNetSetting(Activity activity) {
  Intent intent = new Intent("/");
  ComponentName cm = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");
  intent.setComponent(cm);
  intent.setAction("android.intent.action.VIEW");
  activity.startActivityForResult(intent, 0);
  }
   
  /**
  * 检测3G是否连接
  *
  * @param context 上下文
  * @return 结果
  */
  public static boolean is3gConnected(Context context) {
  ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  if (cm != null) {
  NetworkInfo networkInfo = cm.getActiveNetworkInfo();
  if (networkInfo != null
  && networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
  return true;
  }
  }
  return false;
  }
   
   
   
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值