原文地址:http://www.189works.com/article-9760-1.html
获取网络连接状态
随着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:
1.Monitor network connections (Wi-Fi, GPRS, UMTS, etc.)
2.Send broadcast intents when network connectivity changes
3.Attempt to "fail over" to another network when connectivity to a network is lost
4.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).
分享到:
相关推荐
Android编程获取网络连接状态(3GWifi)及调用网络配置界面
在Android平台上,连接WiFi和创建WiFi热点是两个重要的网络功能,尤其对于移动设备而言,它们在日常生活和工作中扮演着至关重要的角色。这个“Android 连接WiFi和创建WIFI热点 demo”应该是一个示例项目,它展示了...
在这段代码中,我们首先调用`NetworkInfo.networkInfo.findInterfaces()`方法来获取所有可用的网络接口,然后遍历这些接口,检查它们的名称是否为“wifi”或“mobile”,并判断它们是否处于活动状态。如果检测到活动...
在Android系统中,实现WIFI连接以及获取热点功能涉及到多个层次的编程知识,包括系统级API的使用、网络通信协议的理解以及用户界面的交互。以下是对这些知识点的详细阐述: 首先,Android系统的WIFI连接主要依赖于`...
在Android平台上,开发一款名为"WIFI搜索与连接"的应用,主要功能是实现Wi-Fi热点的搜索、连接...开发者需要对Android网络编程有深入理解,熟练掌握`WifiManager`类及相关广播接收器的使用,以实现稳定、高效的功能。
【家用WiFi网络摄像头Android代码】项目是针对个人家庭环境设计的一款智能硬件与移动应用的集成方案,主要由Arduino数码版作为底层主控设备,而Android部分则是配套的应用程序代码,用于实现通过WiFi网络连接和控制...
总之,这个毕业设计项目涵盖了Android应用中网络连接状态检测的核心技术,对于初学者来说,这是一个很好的实践项目,能够帮助他们掌握Android网络编程的基础,同时也可以作为论文的实例研究。通过分析和理解这些源...
通过这个类,开发者可以获取Wi-Fi状态、设置Wi-Fi开关、扫描可用网络、建立Wi-Fi连接等。 1. **开启和关闭Wi-Fi** 使用`WifiManager`的`isWifiEnabled()`方法检查Wi-Fi是否已开启,然后通过`setWifiEnabled...
总结,这个Android Wi-Fi开发Demo示例提供了一个完整的流程,从查找可用的Wi-Fi网络,到连接选定的网络,再到通过Wi-Fi进行数据交换,为开发者提供了实践和学习Android Wi-Fi编程的基础。理解并掌握这些知识点,有助...
在Android平台上,开发一个应用程序以实现“Android--Wifi列表、连接 Wifi 及Wifi登录验证”涉及到几个关键的技术点。下面将详细阐述这些知识点,并提供相关的实现思路。 首先,要获取Wifi列表,Android提供了`...
要连接到指定的WiFi网络,需要创建一个`WifiConfiguration`对象,设置SSID和密码等信息,然后调用`WifiManager`的`addNetwork(WifiConfiguration config)`方法将其添加到配置列表。最后,调用`saveConfiguration()`...
- **状态管理**:处理连接状态,如WiFi连接的建立和断开,以及网络异常的处理。 - **安全性**:确保数据传输的安全性,可能涉及SSL/TLS加密,以及防止未授权访问。 在标签中提到的“ipcamera”是指IP网络摄像头,...
用户只需扫描二维码,设备就能自动配置WiFi网络设置,极大地简化了网络共享过程。本文将深入探讨如何在Android应用中实现这一功能。 首先,我们需要理解WiFi信息的组成。一个WiFi网络的基本信息通常包括SSID(网络...
然后,我们可以调用`getNetworkInfo(int type)`方法来获取特定类型的网络连接信息,例如移动数据(`ConnectivityManager.TYPE_MOBILE`)或WiFi(`ConnectivityManager.TYPE_WIFI`)。`NetworkInfo`对象包含了网络的...
总之,Android WiFi开发涉及硬件驱动、系统服务和应用程序等多个层次,需要开发者具备扎实的Android编程基础和网络知识。通过学习和实践,我们可以创建功能丰富的WiFi应用,如智能家居控制、室内导航等,极大地丰富...
总结起来,Android编程中获取当前连接Wi-Fi名字和IP地址主要涉及到`WifiManager`、`ConnectivityManager`和`NetworkInfo`类的使用。开发者需要检查Wi-Fi是否开启并已连接,然后获取相关信息。希望本文提供的信息能对...
7. **用户界面**:源码中应该包含了显示Wi-Fi网络列表、连接状态和设置的UI界面,通常使用Android的布局和控件实现。 分析这个Wi-Fi应用的源码,开发者可以学习如何优雅地集成Wi-Fi功能,处理各种网络事件,优化...
首先获取它的实例,然后调用`addNetwork`方法创建网络配置,接着调用`saveConfiguration`保存配置,最后使用`connect`方法连接到该网络: ```java WifiManager wifiManager = (WifiManager) getSystemService...
在Android应用开发中,...总的来说,Android编程中判断网络状态和调用系统设置项涉及到对`ConnectivityManager`的使用、权限申请以及Intent的构建。理解并熟练运用这些知识,能帮助开发者在应用中提供更好的用户体验。
Android平台上的WiFi开发是移动应用开发中的一个重要方面,它允许应用与设备的WiFi硬件交互,实现网络连接、扫描、配置等功能。本知识点介绍将基于给定文件内容,深入解析Android中的WiFi开发关键概念和技术细节。 ...