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查詢當前可用網絡的精確度
NetworkInfo | getActiveNetworkInfo() |
NetworkInfo[] | getAllNetworkInfo() |
boolean |
getBackgroundDataSetting()
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. |
NetworkInfo | getNetworkInfo(int networkType) |
int | getNetworkPreference() |
static boolean | isNetworkTypeValid(int networkType) |
boolean |
requestRouteToHost(int
networkType, int hostAddress)
Ensure that a network route exists to deliver traffic to the specified host via the specified network interface.
|
void | setNetworkPreference(int preference) |
int |
startUsingNetworkFeature(int
networkType, String feature)
Tells the underlying networking system that the caller wants to begin using the named feature.
|
int |
stopUsingNetworkFeature(int
networkType, String feature)
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 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
NetworkInfo.DetailedState |
getDetailedState()
Reports the current fine-grained state of the network.
|
||||||||||
String |
getExtraInfo()
Report the extra information about the network state, if any was provided by the lower networking layers., if one is available.
|
||||||||||
String |
getReason()
Report the reason an attempt to establish connectivity failed, if one is available.
|
||||||||||
NetworkInfo.State |
getState()
Reports the current coarse-grained state of the network.
|
||||||||||
int |
getSubtype()
Return a network-type-specific integer describing the subtype of the network.
|
||||||||||
String |
getSubtypeName()
Return a human-readable name describing the subtype of the network.
|
||||||||||
int |
getType()
Reports the type of network (currently mobile or Wi-Fi) to which the info in this object pertains.
|
||||||||||
String |
getTypeName()
Return a human-readable name describe the type of the network, for example "WIFI" or "MOBILE".
|
||||||||||
boolean |
isAvailable()
Indicates whether network connectivity is possible.
|
||||||||||
boolean |
isConnected()
Indicates whether network connectivity exists and it is possible to establish connections and pass data.
|
||||||||||
boolean |
isConnectedOrConnecting()
Indicates whether network connectivity exists or is in the process of being established.
|
||||||||||
boolean |
isFailover()
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.
|
||||||||||
boolean |
isRoaming()
Indicates whether the device is currently roaming on this network.
|
||||||||||
String |
toString()
Returns a string containing a concise, human-readable description of this object.
|
一個用上面兩個類實現的查詢當前網絡狀態是否可用的工具類:
- public static boolean isNetworkAvailable(Context context)
- {
- ConnectivityManager mConnMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo mWifi = mConnMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
- NetworkInfo mMobile = mConnMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
- boolean flag = false;
- if((mWifi != null) && ((mWifi.isAvailable()) || (mMobile.isAvailable())))
- {
- if((mWifi.isConnected()) || (mMobile.isConnected()))
- {
- flag = true;
- }
- }
- return flag;
- }
上面這個類實現了單獨查詢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;
- }