我正在开发一个应用程序,我需要在其中检查互联网连接是否可用。我编写的代码似乎可以处理所有情况,但它在我的模拟器中不起作用。我的代码:
public boolean hasConnection() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiNetwork = cm
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifiNetwork != null && wifiNetwork.isConnected()) {
return true;
}
NetworkInfo mobileNetwork = cm
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mobileNetwork != null && mobileNetwork.isConnected()) {
return true;
}
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected()) {
return true;
}
return false;
}
问题是它永远不会返回false
互联网连接是否可用,无论是在设备中还是在我的模拟器中。但如果设备连接到 wifi 连接,它运行良好。那个片段有什么问题?