如何在Android Studio中检测互联网连接 [英] how to detect internet connection in android studio
本文介绍了如何在Android Studio中检测互联网连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下代码来检测是否有互联网连接。但是,如果我没有互联网连接,则只有数据连接处于开状态,它仍然有效。我该怎么办?
I have following code to detect if there is internet connection available or not. But if I have no internet connection only the data connection is "ON" it still works. what I should do?
ConnectivityManager cManager = (ConnectivityManager) getSystemService(this.CONNECTIVITY_SERVICE);
NetworkInfo ninfo = cManager.getActiveNetworkInfo();
if(ninfo!=null && ninfo.isConnected())
{
Toast.makeText(this, "Available",Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(this, "Not Available",Toast.LENGTH_LONG).show();
}
推荐答案
使用此 NetworkUtils
类:
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class NetworkUtils {
private static int TYPE_WIFI = 1;
private static int TYPE_MOBILE = 2;
private static int TYPE_NOT_CONNECTED = 0;
public static int getConnectivityStatus(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null) {
if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI
&& networkInfo.getState() == NetworkInfo.State.CONNECTED) {
return TYPE_WIFI;
} else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE
&& networkInfo.getState() == NetworkInfo.State.CONNECTED) {
return TYPE_MOBILE;
}
}
return TYPE_NOT_CONNECTED;
}
public static boolean isNetworkConnected(Context context) {
int networkStatus = getConnectivityStatus(context);
if (networkStatus == TYPE_WIFI || networkStatus == TYPE_MOBILE) {
return true;
} else {
return false;
}
}
}
使用如下:
if(NetworkUtils.isNetworkConnected(this)){
}
这篇关于如何在Android Studio中检测互联网连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文