如何检查Android设备是否连接到网络?
首先,你需要许可才能知道设备是否连接到网络或没有。这需要在您的清单,在<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();
我得到这个说法一个空指针异常的可能重复:布尔isConnected = ni.isConnected(); 为什么? – 2010-05-18 10:08:02
是的,我也是! – xpepermint 2011-07-02 22:05:49
@Maxood,这意味着没有活动的网络。换句话说,该设备没有连接到网络。我会改变代码。 – 2011-10-21 03:01:55
首先,你需要有权知道设备是否连接到网络。这需要在你的清单中的元素:
<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();
}
在AppManifest.xml文件中添加此权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
的方法检查如果网络可用或不可用:
boolean isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
return isConnected;
}
[安卓检查互联网连接(http://stackoverflow.com/questions/9570237/android-check-internet-connection) – 2017-02-09 12:10:33