在设备上使用静态 IP 时检测互联网连接几乎没有问题。虽然我在没有设置任何静态 ip 的情况下进行连接,但用于检测可用连接的功能正常工作。但是当我设置静态 IP 时,函数返回 true,因为我连接到 Wifi 或 3G,但我没有任何互联网连接,所以我的应用程序在这种情况下崩溃了。任何想法如何在使用静态 IP 时解决该问题?这是我正在使用的:
public boolean chkNetworkStatus(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
Toast.makeText(context, "No available connection!", Toast.LENGTH_LONG);
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}