首先要在AndroidManifest.xml加上权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

判断有无网络连接:

ConnectivityManager mConnectivity = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
TelephonyManager mTelephony = (TelephonyManager)this.getSystemService(TELEPHONY_SERVICE);
//检查网络连接
NetworkInfo info = mConnectivity.getActiveNetworkInfo(); if (info == null || !mConnectivity.getBackgroundDataSetting()) {
return false;
}

检查网络类型:

int netType = info.getType();
int netSubtype = info.getSubtype(); if (netType == ConnectivityManager.TYPE_WIFI) {  //WIFIreturn info.isConnected();
} else if (netType == ConnectivityManager.TYPE_MOBILE && netSubtype == TelephonyManager.NETWORK_TYPE_UMTS && !mTelephony.isNetworkRoaming()) {   //MOBILEreturn info.isConnected();
} else { return false;
} 

判断WiFi是否已连接:

 /*** make true current connect service is wifi* @param mContext* @return*/private static boolean isWifi(Context mContext) {ConnectivityManager connectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();if (activeNetInfo != null && activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {return true;}return false;}

判断WiFi和移动流量是否已连接:

 public static boolean checkNetworkConnection(Context context){final ConnectivityManager connMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);final android.net.NetworkInfo wifi =connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);final android.net.NetworkInfo mobile =connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);if(wifi.isAvailable()||mobile.isAvailable())  //getState()方法是查询是否连接了数据网络return true;elsereturn false;}

只判断移动网络连接是否正常:

<span style="font-family: Arial, Helvetica, sans-serif;">public boolean isMobileConnected(Context context) {
</span><span style="font-family: Arial, Helvetica, sans-serif;">        if (context != null) {  </span>
            ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);  NetworkInfo mMobileNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);   //获取移动网络信息if (mMobileNetworkInfo != null) {  return mMobileNetworkInfo.isAvailable();    //getState()方法是查询是否连接了数据网络}  }  return false;  }

Android 开发系列7 判断上网方式(Wifi还是数据流量)相关推荐

  1. Android开发系列7——icon图标和开机启动页

    前言   Android开发App过程中,需要一个独特吸引眼球的应用icon,以及标新的Launch页面用于简明的介绍.为了适配各种 手机的尺寸和手机屏幕分辩率,需要同一张图片制作多种尺寸用于兼容各种 ...

  2. android.cat 镜像,Android开发利器之pidcat安装方式

    介绍pidcat: pidcat 是Android届JakeWharton大神开发的一款命令行工具,堪称Android开发利器,它能方便Android程序猿捕获日志,过滤日志,定位程序问题,超级好用. ...

  3. android应用程序判断题,Android开发工程师笔试判断题

    Android开发工程师笔试判断题20例 1.一个Activity就是一个可视化的界面或者看成是控件的容器.√ 2.Intent有很长的生命周期,是没有用户界面的程序,可以保持应用在后台运行,而不会因 ...

  4. Android手机同时使用Wi-Fi和数据流量

    Android手机同时使用Wi-Fi和数据流量 大家都知道,当手机成功连接到Wi-Fi热点以后,手机所产生的上网流量都是通过Wi-Fi来传输的,而手机的移动流量会被禁用.但是,我们现在有特殊的业务需求 ...

  5. android 手机同时使用wifi 和数据流量(3G/4G...)

    Android手机同时使用Wi-Fi和数据流量 大家都知道,当手机成功连接到Wi-Fi热点以后,手机所产生的上网流量都是通过Wi-Fi来传输的,而手机的移动流量会被禁用.但是,我们现在有特殊的业务需求 ...

  6. Android中wifi与数据流量的切换监听

    最近在做一个wifi和移动数据的监控功能,来来回回折腾了一阵子,这个模块的主要功能是监听整个APP的wifi与数据流量的切换,让用户使用专用流量,而不是用wifi,给一个弹窗,点击确认,自动切换数据流 ...

  7. Android开发之通过接口回调机制加载数据(源代码分享)

    Android开发之通过接口回调机制加载数据的简单实现,在实际开发中通过callback方法得到网络加载的数据的使用频率远比通过直接开启线程或异步任务加载数据的频率高的多,这篇文章的代码将简单实现该机 ...

  8. 音视频开发系列(26)三种方式绘制图片-android开发

    在android开发中我们最常使用的绘制图片的方式就是ImageView,设置src.那么有没有其他方案可以实现图片的绘制呐? 三种方案 通过Imageview设置setImageBitmap fin ...

  9. Android开发 亲测可用--多种方式获取手机短信验证码自动填入

    Android开发 静态注册.动态注册.短信中心库监控获取手机验证码,自动复制到剪切板或或填入输入框. 友情提醒初学者:这是广播接收器的类,写在xml中静态注册或写在启动类的Oncreate方法下动态 ...

最新文章

  1. ecplise 安装subclipse
  2. linux系统之centos/ubuntu选择
  3. 2016年计算机网考,2016年电大:计算机网考(全)练习题.doc
  4. c语言100以内奇数的和为多少,编写C#程序,计算100以内所有奇数的和。谢谢了,大神帮忙啊...
  5. laravel邮件服务
  6. python循环输入若干学生信息网_python最简学生信息系统,练习while
  7. dfs-girlcat
  8. SSR端口冲突的解决法法
  9. jsp教师档案信息管理系统ssh
  10. oracle TNS:listener does not currently know of service requested in connect descrip
  11. mysql中date类型_MySql的日期类型datetime和timestamp
  12. Elasticsearch:管理悬空(dangling)索引
  13. java 汽车加油问题_贪心算法---汽车加油问题
  14. mysql:Prepared statement needs to be re-prepared
  15. 交换机——级联、堆叠和集群
  16. 《蔡康永的说话之道》
  17. 世界上最神奇的数字是142857
  18. 中括号文本添加下滑线样式
  19. Hadoop当下最简洁的大数据各种技术介绍与总结
  20. 计算机常用软件考试试题,常用工具软件试题部分答案

热门文章

  1. 前端常用几种设计模式
  2. 【读书分享】流血的仕途
  3. 你知道如何生成随机数吗?(超详细附图)
  4. Sanitizable Signature可净化签名
  5. 定义signature或者signatureOrSystem级别的权限
  6. Shell脚本批量Parted分区
  7. SAP 销售成本和收入的确认
  8. C/C++语言100题练习计划 90——10 进制转 x 进制(进制转换实现)
  9. 1000句最常用英语口语 ------考研论坛 bbs.kaoyan.com
  10. 使用sql服务器发送贺卡_使用Microsoft Word做最后一分钟的节日贺卡