说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

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

HTML文档下载 WORD文档下载 PDF文档下载
检测网络连接状态也就成为Android网络应用程序所必备的功能,本文介绍如何检测网络连接状态并调用网络配置界面。

 

获取网络连接状态
随着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手机的当前网络状态

作者:mainroadlee

获取网络连接状态

随着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 Network        State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();        txt3G.setText(mobile.toString()); //显示3G网络连接状态        //wifi        State 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 Network        State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();        txt3G.setText(mobile.toString());        //wifi        State 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).
本文来源:http://www.cnblogs.com/mainroadlee/archive/2011/01/11/Android_Network_State_Checking_And_Setting.html

 

 

职业设计生涯:打造世界上最小巧最强大手电 【SDCC 2013】Coding For Fun活动火热招募中! YARN之上的大数据框架REEF:微软出品,是否值得期待? 创建大数据公司之前你需知晓5件事 前途渺茫,考虑出售的黑莓还能找到买家吗? 帮助开发者轻松管理项目的8款在线工具 现代Web应用开发者必备的六大技能 JavaScript异步编程好助手:Promise模式 功能解析:Red语言推出0.3.3新版本 可穿戴?可吞咽!UI和UX的悄然转变 华为刘成:讲述开发者联盟的故事 出尔反尔,Amazon咬文嚼字玩转私有云 创业公司SOASTA:曾帮助伦敦奥运会官网进行云负载测试 金山云进一步聚焦云存储 Facebook公布用户数据:美国移动用户占比78% Zynga开源服务器监控工具zPerfmon 上海海事大学王洁:打造物流教学科研应用云平台生态系统 15个步骤创立技术公司,并收获千万用户(二) HTML5发展慢热 开发者热情不减 NimbleBit孪生兄弟创始人:最后悔没有专注和扩大品牌 将对Windows形成挑战:谷歌在Chrome OS中默认支持Office 微软的企业社交大动作:Yammer发布移动SDK 谷歌开源Gumbo:纯C语言实现的HTML5解析库 AMD发布APPML源码,构建clMath库 【观察】3个月,每天增加52台,又一家云企业跻身十万台服务器俱乐部 感受华为IT业务的实力 小米雷军:我为什么做红米? GitHub上线Trending功能,帮你轻松找到有潜力的开源项目 如私人秘书:谷歌搜索将变得更加个性化 微软将于10月17日正式发布Windows 8.1 Google推出在线教育C2C平台Helpouts 怎样判断发信成功 CDONTS.NewMail 在杭州搞JSP的,请进来交换QQ,邮件!我们需要交流! 如何用sendmessage让一个窗口最小化 我想把COM+组件的客户端安装包打到install shield 的安装包中,并且自动安装com+客户端安装包,可是。。。。 word2000中不能使用打印功能,为什么? CSDN是怎么了,三天两头出问题啊~!!!!!!!!!!!!!!!!!!!!!!!!!!!!! OleContainer.SaveToFile的文件用Word怎么打不开? vb的多线程如何实现? 这句话是什么意思!!!! 有个女孩问我的代码理论问题……紧急!!有请各路大仙 指针与数组常通用,但一个存值,一个存地址,能不能讲一下他们的内存如何分配,怎样互用的 我一和女朋友有矛盾时,就感到浑身无力,什么也做不下去,脑袋乱七八糟的,做什么都不专一,直到问题解决,不知大家有没有和我有一样感觉的? 海星是南京大学的吗? 请问。vb有没有字体选择的控件(.ocx) 请问在该专区里有没有四川绵阳水校到深圳的王师兄!huan_91_cn@china.com 游戏爱好狂们注意:有没有愿意建立游戏网页!!! 各位大虾请帮忙!!谢谢!!!!! 有关数据报表的处理,采用EXCEL 听说所有Enterprise Manager工具都允许简单地通过单击鼠标来切换身份 怎么恢复? 在数据库中建立临时表来进行数据操作,我对它在使用时何时建立何时删除不太了解,能给我说明一下吗? 如何在触发器中调用存储过程(sql server 或者 oracle)(无内容) 请问哪里有完整版的sql server下载,不要钱的,不要序列号的??? 请较两个英文短语的理解 我要做个套打的程序,希望高手可以提示一点思路,能用QR吗? 加载驱动的问题!! 请教DELPHI中的打印机设置问题,各位师兄请进来看一下! 急问:怎样编程实现打开已保存的quickreport文件(*.QRP)?主要是得到保存的文件名后如何处理打开操作 请问这语句的意思? 在用Rose进行系统分析的过程中,如何对界面的进行详细描述? 谁知道Kylix要在linux内核2.?版本以上才能安装?? 急死菜鸟拉,大家帮帮忙呀 高分求助!!!配置Tomcat4.0 请问那里有php聊天程序?能适合虚拟主机(Unix)、无数据库 有兄弟如此,我..... 我的Access文件怎么变成只读了?怎么变回来? 如何判断传入的字符为空? 帮忙看看,去空格的问题 applet被限制调用系统资源,那么applet打印问题该如何解决,高手进来讨论 MOUNT 怎么给分啊? 关于用Adobe Acrobat看书的问题 根据母菜单变换子菜单???? 怎样用代码生成菜单,给个例子. 我明年想去读书,全日制的那种,我报计算机专业还是英语专业?各位水园的朋友个建议! 问一个很菜的C++的问题,不得不看罗!! 请问哪里有Acrobat Reader中文支持版本 applet的高手们,如何让applet在载入时显示"程序正在载入中"的提示?????? AIX 下ld 动态库问题 请看这个关于焦点问题 !!!!!!这个问题简单,但我菜,还要问!!!! 某工程若由甲工程队单独做需要40天完成,若乙工程队先单独做30天,再由甲、乙两工程队共同做需20天可完成将工程分成两部分,甲做其中一部分用了X天,乙做另一部分用了Y天,其中X、Y均为正整 良好生活习惯的谚语、俗语 汽车在行驶时,车内的人会发现远处路面上有水,到了近处却没水,这是什么现象? 题某工程若由甲工程队单独做需要40天完成,若乙工程队先单独做30天,再由甲、乙两工程队共同做需20天可完成将工程分成两部分,甲做其中一部分用了X天,乙做另一部分用了Y天,其中X、Y均为正 求黄河的俗语 成语 谚语 好的追50分!不是诗句!是诗句的 葛文! 某管道由甲乙两个工程队分别要30天、20天才能铺完.1)如果两队同时从两端施工,需要多少天铺完?(2)又知甲队单独施工每天200元的施工费,乙队单独施工每天280元的施工费,那么是由甲队单独 海市蜃楼的倒影是光的什么现象? 海市蜃楼的景象是真的吗?有没有经过证实的!比如说在甲地看到的景观有证据证明他是乙地的某处景观!最好有照片!(回答的满意追加分!)感谢你们的回答!不过没有我想要得答案! 某管道由甲·乙两工程队单独施工要30天·20天.(用方程 问:甲乙从两端同时相向施工,需要多少天?问2:有知甲单独施工每天要200元施工费,乙要280元,那由甲单独完成,还是乙单独完成,还是两 为什么海市蜃楼是正景,而沙漠蜃景是倒影?这是光的全反射原理,可为什么会有不同? 为什么会有海市蜃楼的景象? 某管道由甲,乙两工程队单独施工分别需要30天,20天(1)如果两队同时从两端施工,需要多少天铺完?(2)又知甲队单独施工每天200元的施工费,乙队单独施工每天280元的施工费,那么是由甲队单独 带有严字的成语 一定要是成语 香烟中含( )等剧毒物.吸烟危害( ),又容易引起火灾. 某管道由甲乙两个工程队分别要30天、20天才能铺完.1 )如果两队同时从两端施工,需要多少天铺完?解方程 ( )兵( )政的成语( )凶( )恶的成语 ( )三( )四的成语( )兵( )政的成语[要求两个()内要添近义词] ( )凶( )恶的成语[要求两个()内要添近义词] ( )三( )四的成语[要求两个()内要添反义词] 三极管怎样通过各级电压判断工作状态 某管道由甲、乙两工程队单独施工分别需要30天、20天.(1)如果两队同时从两端相向施工,需要多少天完工?某管道由甲、乙两工程队单独施工分别需要30天、20天.(1)如果两队同时从两端相向施工, 三极管工作状态判断一般来说应该是要接Re的,若不然就是没有Re同时也没有Rb2这个路,但是有些题就是有Rb2却又没有Re.如图,若没有Re,发射极直接接地的话,是不是Vb小于0.7V时,三极管截止,Vb大于0 PNP三极管 根据三脚电位如何判断工作状态 火灾实验室都哪里有? 为什么会有海市蜃楼这种现象呢? 美丽奇特的“海市蜃楼”是光的折射产生的一种现象,它通常发生在什么时候? 如图,怎么通过管脚电位判断三极管的三个级? 海市蜃楼是什么意思? 关于光的奇异景象 如果只给一个三极管示意图,告诉cbe三个电位,如何判断三极管的工作状态? 能告诉我海市蜃楼是什么意思 海市蜃楼是不是光的折射现象? 某工程,甲工程队单独做40天完成;若乙工程队先单独做30天,则甲、乙两工程对需要合作20天完成.(1)求乙工程队单独做需要多少天完成?(2)将工程分为两部分,甲做其中一部分用了x天,乙做 三极管工作状态的条件是什么 某工程若由甲工程队单独做需要40天完成,若乙工程队先单独做30天,在由甲、乙两工程队共同做需20天可完成.求乙工程队单独需要多少天完成 海市蜃楼到底是一种什么现象?谁能解释一下. 海市蜃楼是什么现象 某工程甲工程队单独做40天完成,乙工程队单独做30天,甲乙两工程队合作20天即可完成,乙单独需要多少天完 海市蜃楼是( )产生的一种现象? 三极管工作状态有哪几种? 关于物理的成语有哪些?(搜索20个与物理有关的成语),如声,光,热等并附带所对应的物理知识 怎么解释“海市蜃楼”这一现象?可以一句话明确概括吗? 按要求写出表示“多”的成语.颜色多的成语,困难多的成语,知识多的成语三种类型的成语至少四个,今天就要 有关于物理学原理的成语快 帮忙解释一下一些成语和谚语嘛~```谢啦蝇头小利 千里之堤,溃于蚁穴 螳臂当车 蜻蜓点水噤若寒蝉 螳螂捕蝉,黄雀在后 热锅上的蚂蚁 一条线拴两蚂蚱 “海市蜃楼”属于物理中的什么现象? 一个最经典的关于物理的成语 关于物理的古诗、谚语、俗语12句.急求! 如何快速判断三极管的工作状态 你还知道哪些关于光的奇异景象 引起火灾蔓延的主要因素是什么? 判断三极管工作状态 三极管有哪几种工作状态,其工作条件和特点是什么? 火灾蔓延的途径有哪些A.热传导 B.热对流 C.热辐射 如何判断三极管的工作状态固定偏流式放大电路中,当Rc、Rb的参数分别为()时,该电路的静态工作点处在放大区.设三极管的β=100.A.5.6kΩ,10kΩ B.5.6kΩ,510kΩ C.5.6kΩ,1MΩ D.100kΩ,1MΩ 麻烦 引起火灾的主要原因是什么,什么和什么 风大是火灾蔓延扩大的原因吗 如何判断电路中三极管工作状态 某道路改造工程,有甲,乙两工程队合作20天可以完成.甲工程队单独施工比乙工程队施工多用30天完成此工程求解甲乙完成各需要多少天 电工学的问题!请大家帮忙下!用12V的直流电瓶接到台式电源里面的整流桥输出端正负极上能不能用啊.如果不能的话请告诉我下好吗! 家里起火如何扑救 一项工程,甲.乙合作需20天完成.甲工程队单独做需30天完成.求乙工程队单独做需多少天? 1.当变压器的负载增加后,则()(1)铁心中的主磁通Φm增加(2)二次电流I2增大,一次电流I1不变(3)一次电流I1和二次电流I2同时增大2.两个交流铁心线圈除了匝数(N1>N2)不同外,其它参数
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn