我如何知道我的设备是否已连接到互联网?如何检测网络连接性?有示例代码吗?
我如何知道我的设备是否已连接到互联网?如何检测网络连接性?有示例代码吗?
首先,您需要获取权限以知道设备是否连接到网络。这需要在您的清单文件中的<manifest>
元素中声明:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
接下来,您需要获取对ConnectivityManager的引用:
ConnectivityManager cm = (ConnectivityManager) Context.getSystemService(Context.CONNECTIVITY_SERVICE);
从那里,您需要获取一个NetworkInfo对象。对于大多数情况来说,这将意味着使用ConnectivityManager.getActiveNetworkInfo():
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
// There are no active networks.
return false;
}
接下来,您只需要使用NetworkInfo的方法之一来确定设备是否连接到互联网:
boolean isConnected = ni.isConnected();
首先,您需要获得权限,以了解设备是否连接到互联网。这需要在您的清单文件中,在<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
元素中声明:
然后:
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if (connec != null && (
(connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) ||
(connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED))) {
//You are connected, do something online.
} else if (connec != null && (
(connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.DISCONNECTED) ||
(connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.DISCONNECTED ))) {
//Not connected.
Toast.makeText(getApplicationContext(), "You must be connected to the internet", Toast.LENGTH_LONG).show();
}
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
在IT技术中,我们可以使用以下代码来检查网络是否可用:
boolean isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
return isConnected;
}
http://developer.android.com/reference/android/net/ConnectivityManager.html - CONNECTIVITY_ACTION
http://developer.android.com/reference/android/net/ConnectivityManager.html - CONNECTIVITY_ACTION