【发布时间】:2019-01-23 11:53:41
【问题描述】:
我想在我的 android 应用中检查连接状态。我在onResume中调用了下一个方法:
public boolean isThereInternetConnection() {
boolean isConnected = false;
ConnectivityManager connectivityManager =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = (connectivityManager != null) ? connectivityManager.getActiveNetworkInfo() : null;
if (networkInfo != null) {
isConnected = networkInfo.isConnected();
}
return isConnected;
}
在正常模式下它运行良好。但是当我的设备处于节电模式并且我从后台打开我的活动时,方法isThereInternetConnection() 有时会返回 false(互联网连接良好)。为此我检查了networkInfo.getDetailedState(),在省电模式下它返回DetailedState.BLOCKED,即使我有良好的互联网连接。那么如何解决这个错误,如何在省电模式下检查互联网连接并获得真实值true或false - 是否连接到互联网?
【问题讨论】:
-
你试过 activeNetworkInfo.isConnectedOrConnecting() 吗?
-
Curious Mind,isConnectedOrConnecting() 方法现已弃用
-
如何将 conMgr.getActiveNetworkInfo().isAvailable() 添加到条件中,如下所示: if (conMgr.getActiveNetworkInfo() != null && conMgr.getActiveNetworkInfo().isAvailable() && conMgr. getActiveNetworkInfo().isConnected())
-
好奇的头脑,方法 isAvailable() 也被弃用了:)
标签: android network-connection android-connectivitymanager