Shu*_*ich 5 java android networkinfo
我想知道哪种方法可以精确地检查网络状态以成功建立连接。
因此,如果我们查看类的源代码,NetworkInfo.java您会看到网络详细状态被声明为 Enum,
public enum DetailedState {
/** Ready to start data connection setup. */
IDLE,
/** Searching for an available access point. */
SCANNING,
/** Currently setting up data connection. */
CONNECTING,
/** Network link established, performing authentication. */
AUTHENTICATING,
/** Awaiting response from DHCP server in order to assign IP address information. */
OBTAINING_IPADDR,
/** IP traffic should be available. */
CONNECTED,
/** IP traffic is suspended */
SUSPENDED,
/** Currently tearing down data connection. */
DISCONNECTING,
/** IP traffic not available. */
DISCONNECTED,
/** Attempt to connect failed. */
FAILED,
/** Access to this network is blocked. */
BLOCKED,
/** Link has poor connectivity. */
VERIFYING_POOR_LINK,
/** Checking if network is a captive portal */
CAPTIVE_PORTAL_CHECK
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您阅读这些详细状态的评论,它会在下面说明这些内容
网络连接的细粒度状态。很少有应用程序可能会对这种详细程度感兴趣。大多数应该使用 android.net.NetworkInfo.State State 代替。
isConnected()NetworkInfo.java 类中的方法正在检查唯一的State.CONNECTED State,
public boolean isConnected() {
synchronized (this) {
return mState == State.CONNECTED;
}
}
Run Code Online (Sandbox Code Playgroud)
基本上如果你使用
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnectedOrConnecting();
Run Code Online (Sandbox Code Playgroud)
这应该足够了,因为上面的代码将查询活动网络并确定它是否具有互联网连接。一旦您知道了,您就可以继续访问互联网资源。
| 归档时间: |
|
| 查看次数: |
191 次 |
| 最近记录: |