下方是一个很好的监测网络、状态的工具类

  1. public class NetworkUtils {
  2. /**
  3. * 网络是否可用
  4. *
  5. * @param activity
  6. * @return
  7. */
  8. public static boolean isNetworkAvailable(Context context) {
  9. ConnectivityManager connectivity = (ConnectivityManager) context
  10. .getSystemService(Context.CONNECTIVITY_SERVICE);
  11. if (connectivity == null) {
  12. } else {
  13. NetworkInfo[] info = connectivity.getAllNetworkInfo();
  14. if (info != null) {
  15. for (int i = 0; i < info.length; i++) {
  16. if (info[i].getState() == NetworkInfo.State.CONNECTED) {
  17. return true;
  18. }
  19. }
  20. }
  21. }
  22. return false;
  23. }
  24. /**
  25. * Gps是否打开
  26. *
  27. * @param context
  28. * @return
  29. */
  30. public static boolean isGpsEnabled(Context context) {
  31. LocationManager locationManager = ((LocationManager) context
  32. .getSystemService(Context.LOCATION_SERVICE));
  33. List<String> accessibleProviders = locationManager.getProviders(true);
  34. return accessibleProviders != null && accessibleProviders.size() > 0;
  35. }
  36. /**
  37. * wifi是否打开
  38. */
  39. public static boolean isWifiEnabled(Context context) {
  40. ConnectivityManager mgrConn = (ConnectivityManager) context
  41. .getSystemService(Context.CONNECTIVITY_SERVICE);
  42. TelephonyManager mgrTel = (TelephonyManager) context
  43. .getSystemService(Context.TELEPHONY_SERVICE);
  44. return ((mgrConn.getActiveNetworkInfo() != null && mgrConn
  45. .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel
  46. .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);
  47. }
  48. /**
  49. * 判断当前网络是否是wifi网络
  50. * if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE) {
  51. *
  52. * @param context
  53. * @return boolean
  54. */
  55. public static boolean isWifi(Context context) {
  56. ConnectivityManager connectivityManager = (ConnectivityManager) context
  57. .getSystemService(Context.CONNECTIVITY_SERVICE);
  58. NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
  59. if (activeNetInfo != null
  60. && activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {
  61. return true;
  62. }
  63. return false;
  64. }
  65. /**
  66. * 判断当前网络是否3G网络
  67. *
  68. * @param context
  69. * @return boolean
  70. */
  71. public static boolean is3G(Context context) {
  72. ConnectivityManager connectivityManager = (ConnectivityManager) context
  73. .getSystemService(Context.CONNECTIVITY_SERVICE);
  74. NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
  75. if (activeNetInfo != null
  76. && activeNetInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
  77. return true;
  78. }
  79. return false;
  80. }
  81. }

以上方法均通过测试,tv_result为自设定的TextView。

    1. tv_result.append("网络是否可用:"+NetworkUtils.isNetworkAvailable(MainActivity.this)+"\n");
    2. tv_result.append("GPS开关是否打开:"+NetworkUtils.isGpsEnabled(MainActivity.this)+"\n");
    3. tv_result.append("是否为3G网络:"+NetworkUtils.is3G(MainActivity.this)+"\n");
    4. tv_result.append("WIFI是否打开:"+NetworkUtils.isWifiEnabled(MainActivity.this)+"\n");
    5. tv_result.append("是否为WIFI网络:"+NetworkUtils.isWifi(MainActivity.this)+"\n");

最新文章

  1. Java并发基础框架AbstractQueuedSynchronizer初探(ReentrantLock的实现分析)
  2. 操作系统开发系列—12.b.从Loader跳入保护模式
  3. Python自动化之sqlalchemy复合外键
  4. 简单介绍智能DNS解析+双线路接入
  5. java找jar包、搜索class类 搜索maven
  6. RMAN备份与恢复之不完全恢复
  7. self,parent,this区别
  8. WPF从入门到放弃系列第二章 XAML
  9. Visual Studio 2013如何破解(密钥激活)
  10. tensorflow mnist read_data_sets fails
  11. 03 SeekBar 音频播放拖拽进度条
  12. [Windows Hyper-V-Server]Enable or disable firewall rules under powershell / powershell下启用禁用防火墙规则
  13. WPF 可触摸移动的ScrollViewer控件
  14. React-Native android 开发者记录
  15. vue组件推荐
  16. oracle 索引的几种方式
  17. ADO.NET分享
  18. .net视频教程代码之《提交注册内容》
  19. 用.NET CORE做项目,VS里编译碰到‘。。。。包降级。。。。’错误
  20. eclipse安装Freemaker IDE插件

热门文章

  1. 微软BI 之SSRS 系列 - 解决Pie Chart 中控制标签外部显示与标签重叠的问题
  2. Postgresql中的数据类型大全
  3. Five Steps to Avoiding Java Heap Space Errors
  4. ORACLE 定时运行存储过程经常使用时间间隔
  5. Mysql查询数据库表结构以及字段类型并展示
  6. Markdown中实时显示数学公式的方法
  7. Java DES 加解密(&quot;DES/CBC/PKCS5Padding&quot;)
  8. java base64编码、解码的三种方式
  9. VTK中获取STL模型点的坐标以及对其进行变换
  10. 5、redis之使用spring集成commons-pool