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

技术标签: android编程获取网络和wifi状态及调用网络设置界面  

获取网络连接状态

随着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网络连接的状态下)

11125928_1.jpg

调用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));//进入无线网络配置界面

11125928_2.jpg

如果调用

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

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

11125928_3.jpg

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

11125928_4.jpg

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42532067/article/details/117517122

智能推荐

【安全资讯】工信部:智能网联汽车不得泄露敏感信息/需境内存储_翼安研习社的博客-程序员宅基地

来源|腾讯网发布时间|2021-04-07易车讯 日前,从工业和信息化部获悉,为加强道路机动车辆生产企业及产品准入管理,推动智能网联汽车产业健康有序发展,工信部装备工业一司组织编制了《智能网联汽车生产企业及产品准入管理指南(试行)》(征求意见稿)。意见提到,智能网联汽车生产企业应依法收集、使用和保护个人信息,实施数据分类分级管理,制定重要数据目录,不得泄露涉及国家安全的敏感信息。在中华人民共和国境内运营中收集和产生的个人信息和重要数据应当按照有关规定在境内存储。因业务需要,确需向境外提供的,.

v4l2 预备知识 USB摄像头应用程序_oLinXi1234567的博客-程序员宅基地

V4L2是V4L的升级版本,linux下视频设备程序提供了一套接口规范。常用的结构体在内核目录include/linux/videodev2.h中定义struct v4l2_requestbuffers  //申请帧缓冲,对应命令VIDIOC_REQBUFSstruct v4l2_capability      //视频设备的功能,对应命令VIDIOC_QUERYCAPst

VisualSVN Server迁移至新服务器_小测一波的博客-程序员宅基地

VisualSVN Server迁移至新服务器ljpwinxp关注0人评论25131人阅读2018-04-10 16:15:13项目需求由于项目需要将原实体服务器中的VisualSVN Server迁移至VMware ESXI 6.5虚拟平台主机中。环境说明服务器A(迁移源服务器):操作系统:Windows2012 R2 SE X64SVN Server版本:Vis...

android RadioButton_Easy_Gemini的博客-程序员宅基地

学习目的:1、掌握在Android中如何建立RadioGroup和RadioButton2、掌握RadioGroup的常用属性3、理解RadioButton和CheckBox的区别4、掌握RadioGroup选中状态变换的事件(监听器)RadioButton和CheckBox的区别:1、单个RadioButton在选中后,通过点击无法变为未选中

reader 读到空值怎么处理_大家在读取SqlDatareader里面的数据的时候,都怎么来判断是否为空?..._weixin_39902875的博客-程序员宅基地

你的位置:问答吧-> .NET-> 问题详情大家在读取SqlDatareader里面的数据的时候,都怎么来判断是否为空?Int类型 字符串类型 Datetime类型等if (dr.IsNBnull(1) {(int)dr(1);}这种方法感觉不太简洁,有啥好的方法吗?作者: HelloWorldniao发布时间...

python2 python3 pip_CentOS 升级Python2到Python3并且安装 pip正确方式(解决pip: command not found问题)..._weixin_39806065的博客-程序员宅基地

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。CentOS 7 中默认安装了 Python,版本比较低(2.7.5),为了使用新版 3.x,需要对旧版本进行升级。由于很多基本的命令、软件包都依赖旧版本,比如:yum。所以,在更新 Python 时,建议不要删除旧版本(新旧版本可以共存)。一、查看当前 python 版本[[email protected]

随便推点

python3.6for循环_“for”循环在python3.6中不起作用_CHAO 社区的博客-程序员宅基地

我一直在组合3个文本文件。在在第一个文件中,我有对字符串(不是int)在第二个文件中,我有来自文件1的字符串定义在第三个文件中,对第一个文件中的字符串有另一个定义(也是字符串)我的代码是:for line1 in file1:wl1 = ''wl2 = ''kw1 = ''kw2 = ''dz1, dz2, none = line1.split(';')for line2 in file2:dz_...

java 删除集合的办法_天才小小布的博客-程序员宅基地_java 集合删除

很多时候,我们需要动态删除集合中的元素或者对象,删除的方法有很多,我们先说一个错误的。使用for each增强for循环删除集合public static void main(String[] args) { List list = new ArrayList(); list.add("a"); list.add("b");

PowerDesigner介绍_JhonXie的博客-程序员宅基地

PowerDesigner建模工具简介提高软件质量,缩短开发周期, 并且使软件更能够适应业务需求的变化,以提高投资回报率,是每个企业所面临的、需要解决的关键问题。软件建模一直被认为是提高与有效控制软件质量的解决之道。近些年来为大家关注的主要是数据设计模型、对象模型、和业务流程模型。由于历史原因,面向数据架构,开发以及业务分析的建模工作总是被单独购买,彼此之间没有集成或...

Zabbix监控系统自动发现/自动注册_Baymax-夏风的博客-程序员宅基地

案例概述■公司刚刚搭建完Zabbix,现在需要对后续的服务器添加监控,由于公司有几百台服务器,因此使用自动发现或者自动注册来批量添加服务器,并且配置好邮件报警用于及时发现服务器问题。但是由于Zabbix-Server性能有限,所以需要更换Agent工作模式为主动,减轻Zabbix-Server的压力案例前置知识点■获取远程key值Zabbix _get是zabbix服务端的命令,用于检测Agent端的配置是否正确■自动发现自动发现是由Zabbix Server开启发现进程,定时扫描局域网中

csharp create ICS file extension_weixin_30699955的博客-程序员宅基地

string schLocation = "Conference Room 涂聚文约会你"; string schSubject = "Business visit discussion约会"; string schDescription = "Schedule description明天到...

学习系统安全及应用_码薯的博客-程序员宅基地

目录账号安全基本措施使用su命令切换用户Linux中的PAM安全认证PAM认证原理PAM认证的构成PAM安全认证流程使用sudo机制提升权限总结账号安全基本措施系统账号清理●将非登录用户的ShelI设为/sbin/nologinusermod -s /sbin/nologin●锁定长期不使用的账号usermod-L用户名passwd-I用户名passwd -S用户名●删除无用的账号(userdel [-r])●锁定账号文件pa.

推荐文章

热门文章

相关标签