我如何知道我的设备是否已连接到网络?我如何检测连接?任何示例代码?
答案 0 :(得分:54)
首先,您需要获得许可才能知道设备是否已连接到网络。这需要在您的清单中,在<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();
答案 1 :(得分:6)
首先,您需要获得许可才能知道设备是否已连接到网络。这需要在你的清单中,在元素中:
<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();
}
答案 2 :(得分:4)
在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;
}
答案 3 :(得分:0)
http://developer.android.com/reference/android/net/ConnectivityManager.html - CONNECTIVITY_ACTION