获取网络连接状态

随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能。

Android平台提供了ConnectivityManager 类,用于网络连接状态的检测。

Android开发文档这样描述ConnectivityManager的作用:

Class that answers queries about the state of network connectivity. It also notifies applications when network connectivity changes. Get an instance of this class by callingContext.getSystemService(Context.CONNECTIVITY_SERVICE).

The primary responsibilities of this class are to:

Monitor network connections (Wi-Fi, GPRS, UMTS, etc.) Send broadcast intents when network connectivity changes Attempt to "fail over" to another network when connectivity to a network is lost

Provide an API that allows applications to query the coarse-grained or fine-grained state of the available networks

下面这个简单的例子 checkNetworkInfo() 说明了如何编程获取Android手机的当前网络状态

private void checkNetworkInfo() {ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);// mobile 3G Data NetworkState mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();txt3G.setText(mobile.toString()); // 显示3G网络连接状态// wifiState wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();txtWifi.setText(wifi.toString()); // 显示wifi连接状态
}

注:

根据Android的安全机制,在使用ConnectivityManager时,必须在 AndroidManifest.xml中添加<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 否则无法获得系统的许可。

运行结果(关闭3G及wifi网络连接的状态下)

调用Android手机的网络配置界面

使用过Android手机上的手机QQ的朋友,应该知道,当QQ启动时,如果没有有效的网络连接,QQ会提示转入手机的网络配置界面。这是如何实现的呢。其实很简单啦

private void checkNetworkInfo() {ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);// mobile 3G Data NetworkState mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();txt3G.setText(mobile.toString());// wifiState wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();txtWifi.setText(wifi.toString());// 如果3G网络和wifi网络都未连接,且不是处于正在连接状态 则进入Network Setting界面 由用户配置网络连接if (mobile == State.CONNECTED || mobile == State.CONNECTING)return;if (wifi == State.CONNECTED || wifi == State.CONNECTING)return;startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));// 进入无线网络配置界面// startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));// //进入手机中的wifi网络设置界面
}

运行结果(关闭3G及wifi网络连接的状态下),程序转入无线网络配置界面

startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));//进入无线网络配置界面

如果调用

startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); //直接进入手机中的wifi网络设置界面

则直接进入手机中的wifi网络设置界面

在wifi网络连接后 运行该程序

我们可以看到 wi-fi 状态为已连接(CONNECTED).

Android编程获取网络连接状态及调用网络配置界面相关推荐

  1. Android编程 获取网络连接状态 及调用网络配置界面

    获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. Android平台提供了ConnectivityMan ...

  2. Android 监听网络连接状态,判断网络连接方式,9.0网络连接,获取已连接WiFi名称SSID和MAC

    获取已连接的WiFi名称 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> ...

  3. VMware虚拟机设置 桥接模式:直接连接物理网络下的复制物理网络连接状态选项有什么作用?(续订ip)

    如图在虚拟机设置里桥接模式:直接连接物理网络下有一个复制物理网络连接状态选项,这个是做什么用的? 官网链接:为现有虚拟机配置桥接模式网络连接 续订IP是指网卡从路由器的DHCP服务器获得IP地址的过程 ...

  4. Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面

    http://www.mobiletuts.me 获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. An ...

  5. android编程获取网络和wifi状态及调用网络设置界面,Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面 - Android平台开发技术 - 博客园...

    获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. Android平台提供了ConnectivityMan ...

  6. Android系统信息获取 之六:网络连接状态信息获取

    Android系统可以通过WIFI和移动网络来连接互联网,系统网络连接状态是通过ConnectivityManager 类来获取的.关键代码如下: [java] view plaincopy Conn ...

  7. android 检查网络连接状态实现步骤

     android 如何检查网络连接状态,是android开发中一个常见的问题,本文将介绍如何实现,需要的朋友可以参考下 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限 ...

  8. 怎样检查Android网络连接状态

    在发送任何HTTP请求前最好检查下网络连接状态,这样可以避免异常.这个教程将会介绍怎样在你的应用中检测网络连接状态. 创建新的项目 1.在Eclipse IDE中创建一个新的项目并把填入必须的信息.  ...

  9. C# 获取电脑的网络连接状态

    C# 获取电脑的网络连接状态 原文:C# 获取电脑的网络连接状态 判断连网的方法介绍 1. InternetGetConnectedState 此函数获取网络状态有延时,且对网卡伤害较大 MSDN官方 ...

最新文章

  1. js html css淘宝足迹日历效果,js实现简单的日历显示效果函数示例
  2. 秒杀系统架构优化思路
  3. sqlserver 还原到时间点
  4. 服务器禁止修改目录,目录服务器限制 (Sun Java System Directory Server Enterprise Edition 6.2 发行说明)...
  5. linux和android学习,android学习笔记
  6. CSS3 -- display:flex
  7. 晨哥真有料丨为什么越优秀的女生越寡?
  8. 趣说单例模式——选班长
  9. Java自带工具包StringUtils包含方法
  10. Storm 的一个案例
  11. 淘宝新手开店可掌握的爆款核心思路
  12. 网易云课堂web安全第一天
  13. pdf压缩工具_18MB秒变1MB,最好用的PDF在线压缩工具
  14. Linux之必备软件安装(搜狗输入法、qq等)
  15. 老板怎么舍得你离开?-让我来教你如何拍马屁
  16. 使用scp命令上传文件到linux服务器
  17. PMP考前冲刺题2022(错题)含解析
  18. 首发!《2021年度移动应用性能实践》白皮书(附下载)
  19. python中正则表达式 ?(问号)的详解及用法
  20. PTA--结构体: 7-2 节约有理

热门文章

  1. 非此即彼的逻辑错误_超全MBA逻辑答题口诀,快收藏!
  2. 是什么岗位_文案策划的岗位职责是什么?
  3. windows linux rac,跨平台表空间传输(windows到linux RAC)
  4. mysql网页后台_jsp+servlet+mysql开发java web旅游网站,有后台管理系统
  5. 【css】页面出现两个滚动条以及只有一半页面显示内容的解决方法
  6. python queue 多进程_python中的Queue与多进程(multiprocessing)
  7. uniapp实现页面左右滑动,上下滑动事件
  8. vconsole 调试 查看LOG VUE在手机上调试 手机查看h5的日志
  9. iOS 利用dSYM定位crash
  10. Android笔记之使用LocationManager获取经纬度