【发布时间】:2013-11-08 14:22:22
【问题描述】:
目前我正在开发应该可以离线和在线工作的应用程序。但是在某些情况下,网络可用但没有互联网连接。或者我如何检查连接速度。如果连接速度非常低,它应该在离线模式下工作。 下面是我如何检查网络可用性的代码。
public static boolean isNetworkAvailable(Context ctx) {
ConnectivityManager connectivityManager = (ConnectivityManager) ctx
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager
.getActiveNetworkInfo();
if (activeNetworkInfo != null) {
if (activeNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
Log.v("Connection Type", "WI FI");
} else if (activeNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
Log.v("Connection Type", "Mobile");
}
}
return activeNetworkInfo != null
&& activeNetworkInfo.isConnectedOrConnecting();
}
【问题讨论】:
-
在这种情况下,您可以设置超时限制,如果在该时间内数据发送或接收成功,则显示网络错误并在离线模式下执行该任务。
-
ConnectivityManager 只会在连接 Wifi 或连接移动数据时为您提供,但不会提供实际互联网连接的证明。在我的应用程序中,我假设如果网络可用,则它已连接到互联网并抛出任何错误的通知消息。我还假设 WiFi 是快速的互联网,而移动数据很慢
标签: android