译自:http://www.grokkingandroid.com/android-checking-connectivity/
不管在什么时候,当你的应用需要去访问网络时,你事先都应该知道设备当前已经连上了网络。为了更好的获取设备的网络连接状态,Android提供了两个class来做这件事,分别是ConnectivityManager和NetworkInfo。
一般情况下我们都不需要主动的创建 ConnectivityManager对象实例,我们可以通过上下文对象Context来获取一个实例
ConnectivityManager connManager =   (ConnectivityManager)context.   getSystemService(Context.CONNECTIVITY_SERVICE);
ConnectivityManager本身其实并没有多大的作用,但它可以获取到 NetworkInfo对象(获取当前的网络连接状态)。有三种方式可以获取到NetworkInfo对象,但是如果你想马上知道网络连接状态的话,下面做法效果最好
NetworkInfo info = connManager.getActiveNetworkInfo();
或者你也可以通过ConnectivityManager获取到系统中一组可用的NetworkInfo对象。每一个NetworkInfo都代表了一种网络类型(e.g. WIFI)。
NetworkInfo info = connManager.getAllNetworkInfo();
通过NetworkInfo对象你能获取到关于一种网络类型所有的信息。你可以检测某一种网络类型当前是否可用,如果当前已经连接到网络了,你能获取到当前连接的网络是那种类型
下面是一些NetworkInfo类比较重要的方法。屏幕上显示的是这些方法执行的结果(WIFI或者UMTS网络的信息)
info.isAvailable()info.isConnected()info.isConnectedOrConnecting()info.getState()info.getDetailedState()info.getTypeName()info.getType()info.getSubtypeName()info.getSubtype()

NetworkInfo showing only disconnected states

NetworkInfo showing an established WIFI connection

NetworkInfo showing an established UMTS connection




















访问网络的连接状态需要明确的在manifest文件中声明权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
相关文章:
  • Android: Getting Notified of Connectivity Changes












更多相关文章

  1. Android(安卓)数据显示在屏幕上
  2. Android源码分析-全面理解Context
  3. Android(安卓)Support Design 中 CoordinatorLayout 与 Behavior
  4. 网络连接和概述
  5. 【Android】 在Andorid中解析Json数据示例
  6. Android(安卓)SurviceView的触控和轨迹球事件
  7. android网络请求框架Volley(二)
  8. android studio 混淆打包apk后volley无法访问网络
  9. Android(安卓)-- 再来一发Json

随机推荐

  1. android读取usb设备数据
  2. Android前端—显示GIF动画
  3. Android Stdio实现点击按钮出现图片
  4. Android 通过Http访问Web端的Servlet
  5. 【Android】创建、读取XML文件
  6. Android如何设置圆角按钮
  7. 设置Android输入法的回车键
  8. android SAX
  9. Android Gradle版本和Android plugin版本
  10. Android中如何判断是否联网