java.lang.Object | |
↳ | android.net.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.
- 监视网络连接(WIFI,GPRS,UMTS等)
- 当网络变化时发出broadcast.
- 当目前的网络丢失的时候尝试转移到另一个网络
- 提供API来允许AP查询当前可用网络的精确度
<nobr><a href="http://developer.android.com/reference/android/net/NetworkInfo.html" style="color:rgb(0,102,153); text-decoration:none">NetworkInfo</a></nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/ConnectivityManager.html#getActiveNetworkInfo()" style="color:rgb(0,102,153); text-decoration:none">getActiveNetworkInfo</a></span>()</nobr> |
<nobr><a href="http://developer.android.com/reference/android/net/NetworkInfo.html" style="color:rgb(0,102,153); text-decoration:none">NetworkInfo[]</a></nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/ConnectivityManager.html#getAllNetworkInfo()" style="color:rgb(0,102,153); text-decoration:none">getAllNetworkInfo</a></span>()</nobr> |
<nobr>boolean</nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/ConnectivityManager.html#getBackgroundDataSetting()" style="color:rgb(0,102,153); text-decoration:none">getBackgroundDataSetting</a></span>()</nobr>
This method is deprecated. As of ICE_CREAM_SANDWICH , availability of background data depends on several combined factors, and this method will always returntrue . Instead, when background data is unavailable,getActiveNetworkInfo() will now appear disconnected.
|
<nobr><a href="http://developer.android.com/reference/android/net/NetworkInfo.html" style="color:rgb(0,102,153); text-decoration:none">NetworkInfo</a></nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/ConnectivityManager.html#getNetworkInfo(int)" style="color:rgb(0,102,153); text-decoration:none">getNetworkInfo</a></span>(int networkType)</nobr> |
<nobr>int</nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/ConnectivityManager.html#getNetworkPreference()" style="color:rgb(0,102,153); text-decoration:none">getNetworkPreference</a></span>()</nobr> |
<nobr>static boolean</nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/ConnectivityManager.html#isNetworkTypeValid(int)" style="color:rgb(0,102,153); text-decoration:none">isNetworkTypeValid</a></span>(int networkType)</nobr> |
<nobr>boolean</nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/ConnectivityManager.html#requestRouteToHost(int,%20int)" style="color:rgb(0,102,153); text-decoration:none">requestRouteToHost</a></span>(int networkType, int hostAddress)</nobr>
Ensure that a network route exists to deliver traffic to the specified host via the specified network interface.
|
<nobr>void</nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/ConnectivityManager.html#setNetworkPreference(int)" style="color:rgb(0,102,153); text-decoration:none">setNetworkPreference</a></span>(int preference)</nobr> |
<nobr>int</nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/ConnectivityManager.html#startUsingNetworkFeature(int,%20java.lang.String)" style="color:rgb(0,102,153); text-decoration:none">startUsingNetworkFeature</a></span>(int networkType,<a href="http://developer.android.com/reference/java/lang/String.html" style="color:rgb(0,102,153); text-decoration:none">String</a>feature)</nobr>
Tells the underlying networking system that the caller wants to begin using the named feature.
|
<nobr>int</nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/ConnectivityManager.html#stopUsingNetworkFeature(int,%20java.lang.String)" style="color:rgb(0,102,153); text-decoration:none">stopUsingNetworkFeature</a></span>(int networkType,<a href="http://developer.android.com/reference/java/lang/String.html" style="color:rgb(0,102,153); text-decoration:none">String</a>feature)</nobr>
Tells the underlying networking system that the caller is finished using the named feature.
|
java.lang.Object | |
↳ | android.net.NetworkInfo |
Describes the status of a network interface of a given type (currently either Mobile or Wifi).
描述目前网络的状态()
Detailed state | Coarse-grained state |
IDLE | DISCONNECTED |
SCANNING | CONNECTING |
CONNECTING | CONNECTING |
AUTHENTICATING | CONNECTING |
CONNECTED | |
DISCONNECTING | DISCONNECTING |
DISCONNECTED | DISCONNECTED |
UNAVAILABLE | DISCONNECTED |
FAILED | DISCONNECTED |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
<nobr><a href="http://developer.android.com/reference/android/net/NetworkInfo.DetailedState.html" style="color:rgb(0,102,153); text-decoration:none">NetworkInfo.DetailedState</a></nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/NetworkInfo.html#getDetailedState()" style="color:rgb(0,102,153); text-decoration:none">getDetailedState</a></span>()</nobr>
Reports the current fine-grained state of the network.
| ||||||||||
<nobr><a href="http://developer.android.com/reference/java/lang/String.html" style="color:rgb(0,102,153); text-decoration:none">String</a></nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/NetworkInfo.html#getExtraInfo()" style="color:rgb(0,102,153); text-decoration:none">getExtraInfo</a></span>()</nobr>
Report the extra information about the network state, if any was provided by the lower networking layers., if one is available.
| ||||||||||
<nobr><a href="http://developer.android.com/reference/java/lang/String.html" style="color:rgb(0,102,153); text-decoration:none">String</a></nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/NetworkInfo.html#getReason()" style="color:rgb(0,102,153); text-decoration:none">getReason</a></span>()</nobr>
Report the reason an attempt to establish connectivity failed, if one is available.
| ||||||||||
<nobr><a href="http://developer.android.com/reference/android/net/NetworkInfo.State.html" style="color:rgb(0,102,153); text-decoration:none">NetworkInfo.State</a></nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/NetworkInfo.html#getState()" style="color:rgb(0,102,153); text-decoration:none">getState</a></span>()</nobr>
Reports the current coarse-grained state of the network.
| ||||||||||
<nobr>int</nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/NetworkInfo.html#getSubtype()" style="color:rgb(0,102,153); text-decoration:none">getSubtype</a></span>()</nobr>
Return a network-type-specific integer describing the subtype of the network.
| ||||||||||
<nobr><a href="http://developer.android.com/reference/java/lang/String.html" style="color:rgb(0,102,153); text-decoration:none">String</a></nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/NetworkInfo.html#getSubtypeName()" style="color:rgb(0,102,153); text-decoration:none">getSubtypeName</a></span>()</nobr>
Return a human-readable name describing the subtype of the network.
| ||||||||||
<nobr>int</nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/NetworkInfo.html#getType()" style="color:rgb(0,102,153); text-decoration:none">getType</a></span>()</nobr>
Reports the type of network (currently mobile or Wi-Fi) to which the info in this object pertains.
| ||||||||||
<nobr><a href="http://developer.android.com/reference/java/lang/String.html" style="color:rgb(0,102,153); text-decoration:none">String</a></nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/NetworkInfo.html#getTypeName()" style="color:rgb(0,102,153); text-decoration:none">getTypeName</a></span>()</nobr>
Return a human-readable name describe the type of the network, for example "WIFI" or "MOBILE".
| ||||||||||
<nobr>boolean</nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/NetworkInfo.html#isAvailable()" style="color:rgb(0,102,153); text-decoration:none">isAvailable</a></span>()</nobr>
Indicates whether network connectivity is possible.
| ||||||||||
<nobr>boolean</nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/NetworkInfo.html#isConnected()" style="color:rgb(0,102,153); text-decoration:none">isConnected</a></span>()</nobr>
Indicates whether network connectivity exists and it is possible to establish connections and pass data.
| ||||||||||
<nobr>boolean</nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/NetworkInfo.html#isConnectedOrConnecting()" style="color:rgb(0,102,153); text-decoration:none">isConnectedOrConnecting</a></span>()</nobr>
Indicates whether network connectivity exists or is in the process of being established.
| ||||||||||
<nobr>boolean</nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/NetworkInfo.html#isFailover()" style="color:rgb(0,102,153); text-decoration:none">isFailover</a></span>()</nobr>
Indicates whether the current attempt to connect to the network resulted from the ConnectivityManager trying to fail over to this network following a disconnect from another network.
| ||||||||||
<nobr>boolean</nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/NetworkInfo.html#isRoaming()" style="color:rgb(0,102,153); text-decoration:none">isRoaming</a></span>()</nobr>
Indicates whether the device is currently roaming on this network.
| ||||||||||
<nobr><a href="http://developer.android.com/reference/java/lang/String.html" style="color:rgb(0,102,153); text-decoration:none">String</a></nobr> | <nobr><span class="sympad" style="margin-right:2px"><a href="http://developer.android.com/reference/android/net/NetworkInfo.html#toString()" style="color:rgb(0,102,153); text-decoration:none">toString</a></span>()</nobr>
Returns a string containing a concise, human-readable description of this object.
|
一个用上面两个类实现的查询当前网络状态是否可用的工具类:
上面这个类实现了单独查询WiFi与Mobile的移动网络是否可用,可以看到就是使用了ConnectivityManager与NetworkInfo提供的接口实现的功能!
public static boolean isConnectionAvailable(Context cotext) { boolean isConnectionFail = true; ConnectivityManager connectivityManager = (ConnectivityManager)cotext.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivityManager != null) { NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); if (activeNetworkInfo == null || !activeNetworkInfo.isConnected()) { isConnectionFail = true; } else { isConnectionFail = false; } } else { Log.e(TAG, "Can't get connectivitManager"); } return isConnectionFail; }
isConnectionAvailable则实现了所有网络是否可用的判断,程序不关心当前使用的是何种网络,只需关系是否连接上互联网既可,第一个工具类在某些时候会需要使用到,比如只在WiFi情况下才进行下载的操作,等等。
谢谢!