获取网络连接状态

随着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 calling

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手机的当前网络状态

privatevoidcheckNetworkInfo()

{

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中添加

permission android:name="android.permission.ACCESS_NETWORK_STATE" />

否则无法获得系统的许可。

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

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

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

privatevoidcheckNetworkInfo()

{

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(newIntent(Settings.ACTION_WIRELESS_SETTINGS));//进入无线网络配置界面//startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));//进入手机中的wifi网络设置界面}

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

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

如果调用

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

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

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

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

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

  1. android开发技术博客

    2019独角兽企业重金招聘Python工程师标准>>> Android Developers Blog http://android-developers.blogspot.in/ ...

  2. java 安卓项目案例_Java - 随笔分类 - android开发实例 - 博客园

    随笔分类 - Java 摘要:1.使用标准输入串对象System.inSystem.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字,这就很不适合,需要其他方法取得这样的 ...

  3. Telnet协议详解及使用C# 用Socket 编程来实现Telnet协议 - Atpking - 博客园

    Telnet协议详解及使用C# 用Socket 编程来实现Telnet协议 - Atpking - 博客园 Telnet协议详解及使用C# 用Socket 编程来实现Telnet协议 - Atpkin ...

  4. 网络采集软件核心技术剖析系列(1)---如何使用C#语言获取博客园某个博主的全部随笔链接及标题...

    一 本系列随笔概览及产生的背景 自己开发的豆约翰博客备份专家软件工具问世3年多以来,深受广大博客写作和阅读爱好者的喜爱.同时也不乏一些技术爱好者咨询我,这个软件里面各种实用的功能是如何实现的. 该软件 ...

  5. 聊聊在博客园写博客的这两年《Unity 3D脚本编程:使用C#语言开发跨平台游戏》正式出版...

    版本状态: 2016.9 第一次印刷 (2016.11 输出到台湾) 2017.1 第二次印刷 2017.5 第三次印刷 2017.5 电子书上线:Unity 3D脚本编程--使用C#语言开发跨平台游 ...

  6. python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客

    python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客 python脚本监控网站状态 2013-01-09 09:21:02 标签:监控 python 原创作品,允许转载,转载时请 ...

  7. dlibdotnet 人脸相似度源代码_使用dlib中的深度残差网络(ResNet)实现实时人脸识别 - supersayajin - 博客园...

    opencv中提供的基于haar特征级联进行人脸检测的方法效果非常不好,本文使用dlib中提供的人脸检测方法(使用HOG特征或卷积神经网方法),并使用提供的深度残差网络(ResNet)实现实时人脸识别 ...

  8. Socket编程之简单介绍 - 蓝天下的雨 - 博客园

    Socket编程之简单介绍 - 蓝天下的雨 - 博客园 Socket编程之简单介绍 - 蓝天下的雨 - 博客园 Socket编程之简单介绍 2013-03-19 15:27 by 蓝天下的雨, 878 ...

  9. 【博客园客户端】博客园Android客户端正式发布

    原文地址为: [博客园客户端]博客园Android客户端正式发布 [最新消息]博客园Android客户端已经进驻官方Market,请各位园友果断给好评(手机Android Market中搜索" ...

最新文章

  1. Exchange动态同步中的INTERNET_29错误代码
  2. mysql外键约束视频教学_外键约束案例_MySQL数据库 快速入门 基础+实战 视频教程_MySQL视频-51CTO学院...
  3. sqlserver2008清除日志方法_服务器磁盘使用率100%解决方法
  4. questasim linux安装包,Ubuntu16.04下Questasim10.7安装(64bit)全攻略
  5. python从入门到精通学习笔记_Python从入门到精通之基础概念
  6. Hibernate Annotation中英文文档链接下载 (Hibernate 注解)
  7. 如何开发Web应用程序(非网站)
  8. 不吹不擂,一文揭秘鸿蒙操作系统
  9. C语言1094题目,基于visual Studio2013解决C语言竞赛题之1094纵横图
  10. CCF 201612-2 工资计算 java 解题
  11. centso7.5 安装minconda3和创建项目所需python3环境
  12. 总结之《征服C指针》
  13. 将日期变为中文星期几
  14. Android 9.0/P 开发问题及解决方案汇总
  15. 玩转位图(bitmap)
  16. php dom 分离html内容
  17. 2021年荷兰经济发展研究报告
  18. 十大经典系统架构设计面试题
  19. 06-作业练习盒子模型
  20. Android静默拍照(无感知拍照)

热门文章

  1. 一个月时间整理《深入浅出Node.js》
  2. 分析及解决SQLServer的死锁问题
  3. PWM波形的simulink仿真
  4. 用VC++实现通用的报表控件
  5. 本科视觉算法实习生面经
  6. 阿里python面试题和答案_阿里的python大牛总结10条Python面试题陷阱,中招了吗?...
  7. uboot的环境变量分析(printenv)
  8. SpringBoot2.0(一):【重磅】Spring Boot 2.0权威发布
  9. [ BZOJ 2456 ] Mode
  10. session过期跳转到登陆页面并跳出iframe框架的最简单方法