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

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

 

 

土豪经济 E人E本发布首款4G安全手机 内忧外患:Android版FuelBand应用来得太迟? MongoDB 2.6.2 发布,大大改进查询功能 清华毕军&amp;华为马云:SDN是学术和产业都看好的领域 向三星和苹果发难:亚马逊FirePhone 3D手机强势来袭 支付宝移动端与NFC芯片商、手机商合作 推出近场支付产品 Go 1.3正式发布,改进正则表达式! API设计如龙生九子,Tunneling、Hypermedia等更受开发者青睐 NFV+SDN,博科打造开放式网络平台 亚马逊开放双SDK:摄像购物,追踪脸部玩游戏 解析淘宝Hadoop作业平台——宙斯Zeus 亚马逊的心思:要Android不要谷歌 Vuforia SDK全面更新:3.0版可实时生成虚拟场景和物体 Stream SDK:以手为“剪”,随时随地分享精彩内容 一周消息树:惠普研发基于Linux开源操作系统 打造全新计算机 我从谷歌学到的那些事:Toilet文化、代码实验室 对话大神Scott Shenker:从物理博士到SDN&#039;s Uncle 巨头们的又一战:健康数据服务平台 移动应用广告新竞争,Facebook不再一家独大 为什么Fire Phone手机价格不便宜? 老牌播放器暴风影音发力线下与自制内容 APP运营:“小数据”为合理化推送定位 TCL H5TV:回归电视本质,与开发者共赢 烽火星空徐国龙:依托平台,坚持开放与标准,企业移动化快速研发之道 首届bong线上黑客马拉松第一阶段达成! 12支团队晋级 APSys 2014,AMD将发表基于异构体系的DNN实现与评估 PagerDuty实战分析:将MySQL迁移至XtraDB并成功运行EC2 Molecule:自食其力的免费HTML5游戏框架 智能家居升级:Nest启动开发者计划,并开放API Docker,从这里做起! 《近匠》云巴创始人张虎:低门槛云服务为小团队创造更多机会 哪位高手作过网站建设?请帮忙!!! 软件发布:五子棋大战 光驱的问题 软件发布:扑克(版本:36.0,玩法的数量和版本号一样) 软件发布:鸿森万能证件打印系统 软件发布:密码盗窃器(超小版:30k) 软件发布:寝室多人共享上网计时计费器 软件发布:美萍安全卫士密码破解器 软件发布:整人蛀虫 SQL SERVER存储过程的问题!!!! 软件发布:词痴 软件发布:自动关机 软件发布:南易彩票选号系统 pfc基类庫是纯英字,谁有中文的。 软件发布:精灵英文输入法(写代码助手) 软件发布:QQSpy密码探测器98版 for 0425 高手请,为何在不同地方打开对话框会有不同的结果呢? 软件发布:《商务导航》 软件发布:amp player 豪华版 如何关闭XCOPY打开的窗口,详细一点 请援手:pfc程序如何再升级?(关于版本更新) 谁是高手,一个事务处理问题。 大家来聊聊:JBUILDER5比JUILDER4在那方面改进了!? 我们这个破烂小公司成天TMD瞎折腾! 根据用户名和密码登陆的问题! 大家来说一下,中程和高程证书在找工作时作用怎样 Dialog上放了一个group box,请问如何动态改变group box框框中的整个颜色?急呀! 用程序向表中插数据的问题? 怎样制作一个类似日历的控件?快快快! 做个调查:在上海delphi的前景如何?现在工资怎么样? 如何给graph控件的values赋值. c++Builder的悲哀历程,求助帮忙,各位大虾多指点 建议封杀e_lion,影响看贴情绪!杀无赦!!! 请教高手:我用vc6.0向导生成了一个Utility Project,不想用MFC AppWizard(exe)生成的基本类,可我无法编译我写的cpp(带winMain函数)文件,为何? 无任何理由,第一个进来者300分。当场结帐。 各位,是如何调试自己编写的servlet的,我使用jswdk每次,修改servlet后都要重启一次服务器,有没有什么好法子。 不看不知道。 在写servlet时,如果要输出一段文字的问题。 “瑞星2001病毒实时间控装载失败”? 既然看到了,不妨进来“坐坐”! (关于串口) 看看我的计划《程序员生活》, 数据库小问题 有谁用过Delphi6带的InstallShield Express - Borland Limited 请赐教:我只想建一个空工程,里面什么类也没有,只望往加我写的类(带winMain 函数),编译成exe文件,用vc6.0,怎么做呀 硬盘喀-啦,喀-啦连续的响是何原因 你们好,能告诉多表更新的时候UPDATE(true,false)中的true,false是什么意思吗? (菜菜鸟级问题)怎么给别人分数?自己的分数又是怎样积累的? 算法问题求解 怎样去看继承下来的方法的代码? 原来大把花钱的感觉真是爽!还是没有任何理由,第7个进来者300分! 我买了一张D片winnt4.0.6, 不知怎么安装。我用winnt /ox作了三张启动盘,但到最后要求我插入光盘,可是回车后最反映,能不能不用启动盘,首先说明这张D版盘可用。请大家快帮帮我@_@ 一班植树占三个班总棵树的1/5,二班植树是三个班植树棵树的3/5,二班比一班多植树20棵,这三个班一共植树多少棵? 鸡兔同笼,有23个头,56条腿,鸡兔各几只【用方程做】 鸡兔共40只,兔子比鸡多16条腿,问鸡兔各多少只有x的方程 希望小学二、三年级共植树114棵,其中三年级的植树棵数是二年级的2倍,问二、三年级各植树多棵? 鸡兔同笼,共有21个头,56条腿.鸡、兔各有多少只?(方程解) 一只鸡有2条腿,兔子有4条腿,现在又鸡兔若干只,他们共有240条腿,鸡是兔子的2呗,求鸡兔各有多少只?第一个回答的给悬殊按 奥数题(鸡兔同笼)蜘蛛有8条腿,蝴蝶有6条腿和2对翅膀,禅有6条腿和1对翅膀.现在这三种小虫共21只共140条腿和23对翅膀.蜘蛛,蝴蝶,禅各几只? 鸡兔同笼20只,鸡和兔的腿共56条,鸡有()只,兔有()只 鸡兔同笼,共有30个头和84条腿,求鸡和兔各几只? 鸡兔同笼奥数题有2分、5分、1角的硬币20枚,共计1.20元,其中5分有几枚,1角有几枚? 鸡兔同笼共9只,腿26条,则鸡..只.兔..只.怎样求出的..本人只学过一元一次方程,请用 一元一次方程解答.. 鸡兔同笼,有25个头,有70条腿, 请问有几只兔子几只鸡?急用! 奥数题(鸡兔同笼)某农民养鸡兔若干只,已知鸡比兔多13只,鸡的脚比兔的脚多16只,鸡兔各多少只?(横式计算) 鸡兔同笼,腿200只,鸡的腿书比兔少56只,鸡兔各多少只? 鸡兔同笼,共有35个头,94条腿.求鸡和兔子各有多少只. T1.在括号里面分别填上两个相邻的自然数,使下式成立!( )<(一百零一分之一+一百零二分之一+一百零三分之一+.+一百五十分之一)*3<( )T2.自然数A和B的最小公倍数是140,最大公约数是5, 鸡兔同笼共九只,腿26条,则鸡和兔各有几只? 1.鸡兔同笼,共有8个头,20条腿,笼里有几只鸡?几只兔?(用方程和列举法.) 甲乙两个箱子所装水果的质量比是5:4,现在如果把甲水果的25%放进乙,再从乙拿出30千克,这时两个箱子的重量相等.求甲乙两箱原来各有多少千克水果? 鸡兔同笼 21个头 56条腿 鸡兔各几只? 鸡兔同笼,共有10个头,32条腿,鸡,兔各有几只?列表格 如题,一项工程,甲单独做要36天,乙单独做要45天.如果开工时甲、乙两队合做,甲中途退出转做新的工程,乙队又做了18天才完成任务.问甲队做了多少天? 鸡兔同笼方程解笼子里有若干只鸡和兔,从上面数,有8个头,从下面数,有26只脚.鸡和兔各有几只?所有解的过程都写上写清楚,不能掉 鸡兔同笼,共有32个头,74条腿,鸡有()兔有()只 比例应用题 也要用算术方法解一次 急 1、一辆轿车从甲地开往乙地,每小时行驶72km,4小时到达,如果每小时行驶80km,几小时到达?2、一捆铁丝长212.5m,剪下5m长的一段重200g,这捆铁丝重多少克?3、 鸡兔同笼,鸡比兔多26只,足数共274只,问鸡兔各有几只?方程 鸡兔同笼,共10个头,26条腿,请问有几只鸡?几只兔?急 (用算术法算,不要用方程)谢谢各位配合!1.有一箱灯泡,先拿出168个,又拿出剩下的2/3,这时箱里剩下的灯泡恰好是这箱灯泡总数的1/7,这箱灯泡共有多少个?2.小华看一本书,第一天看了一些,第二 鸡兔同笼,兔比鸡少20只,脚数共262只,鸡兔各有多少只?(方程解答,并说出计算道理) 鸡兔同笼,共有10个头,32条腿,鸡、兔各有多少只?列表法 六年级数学题 要用算术解 不要方程篮球比赛中,3分线以外投中一球得3分,3分线内投中一球得2分.在一次篮球比赛中,球星易建联总共投中9个球,得20分,他投中的3分球和2分球各多少个? 笼子里有相同数量的鸡和兔,一共有48条腿,各有鸡和兔几只?(用方程解) 数学的鸡兔同笼怎么用方程计算?在没有“鸡比兔多……只”、“兔比鸡多……只”的情况下,该怎么用方程计算?例如:有鸡和兔共100只,共有280条腿,鸡有几只?这题就没有上面说的情况,怎么用 运输队计划在3天内运走一批货物第一天运走了48吨占这批货物的2/5第二天与第三天运走的比是3.看补充运输队计划在3天内运走一批货物第一天运走了48吨占这批货物的2/5第二天与第三天运走 [用算术方法解,不能用方程]某商店从外地购进360个玻璃制品,运输时损坏了40个,剩下的按进价的117%售出,商店可盈利百分之几? 鸡兔同笼 共有48条腿 已知兔比鸡多8条腿 鸡兔各有多少只? 运输队计划在3天内运走一批货物第一天运走了48吨占这批货物的2/5第二天与第三天运走的比是3:5第三天运多少 请列示解答或一元一次方程修一条水渠,如果每天多修8米,可以提前4天,若每天少修八米,将推迟八天完成,求水渠的长度. 鸡、兔共有100条腿,若鸡数和兔数互换,则共有86条腿,鸡兔各有多少只?请讲解本题 运输队计划3天内运完一批货物.第一天运了4.8吨,占这批货物的40%,第二天与第三天运的吨数比是3:5——用正比例的方式 六年级数学题(一元一次方程)0.3分之x-1-0.5分之x+2=1.2 鸡兔同笼,有8个头,20条腿,鸡和兔各有多少只?用算术方法怎么做 运输队计划在3天内运走一批货物第一天运走了4.8吨占这批货物的40%第二天与第三天运走的比是3:5第三天运了第三天运了多少吨?2.一辆汽车三小时行驶180千米,用这样的速度从甲地开到乙地,已 一元一次方程的应用已知六年级2班共有45人,男生人数于女生人数的比为4:5,求这个班男女生各有多少人? 鸡兔同笼,共有20个头,64条腿,鸡和兔各有多少只? 物流公司运送一批货物第一天运了总数的3分之1第二天运了9吨已运的与剩下的吨数比是7:5求这批货物一共多少吨 一道数学题(可用方程、算数法,方程用一元一次方程)求详细解答!六年级同学分成甲 乙两个组劳动,甲 乙两组人数比是7:3 ,后来因为劳动需要,从甲组派了30人到乙组,这样甲乙两组人数比变 鸡兔同笼,有8个头,20条腿,鸡和兔各有多少只?用方程 运送一批货,第一天运了总数的1/3,第二天运了9吨,这时已运的与剩下的吨数比是7:5,这批货物有多少吨? 要解设,并且是一元一次方程一家商店将某种型号的彩电按物价部门准核的原价提高30%,然后标出“大酬宾,八折优惠”,经顾客投诉,执法部门按非法收入的10倍处以每台1000元罚款,则每台彩电原 鸡兔同笼,有20个头,50条腿,鸡有()只,兔有()只,一个平行四边变成()形时面积最大, 五年级同学参加植树要植树五十六棵要求每行的棵数相同有几种不同的方法 用一元一次方程解,算术也行1、某商店经销一种商品,由于进货价格降低了百分之六点四,使得利润率提高了百分之八,求原来经销此种商品的利润率.2、一项工程,A单独做要四十天,B单独做要三 鸡兔同笼,有20个头,54条腿,鸡与兔各有多少只? 把下面各比化成前项是100的比.(1)实验小学今年植树的棵数与去年植树棵数的比是4:3.2 (2)一辆小汽车的速度与一架超音速飞机的速度之比是1:15. 要解题思路,最好用算术方法,或者一元一次方程.货车速度与轿车速度的比是3:8,两车分别从A、B两地同时出发,相向而行.八分之三小时相遇,如果两车从A、B两地同时出发同向而行,货车速度在前, 鸡兔同笼共有十八个头54条腿同笼中鸡和兔各有多少只? 一班植树的棵数占三个班的五分之一,二班与三班的比是3:5,二班比三班少植树40棵,这三个班各植树多少棵要方程 鸡兔同笼,有20个头,56条腿,鸡与兔各有多少只? 鸡兔同笼问题方程解 ,鸡和兔共有18只,共有72只脚,设有X只兔,那鸡有多少只打错了是56只脚不好意思
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn