android中检查互联网连接的最佳方法

android中检查互联网连接的最佳方法,android,network-programming,Android,Network Programming,当设备连接到网络但没有互联网连接时,我想检查互联网连接。 我想知道检查这个的最好方法是什么 我问这个问题是因为没有找到任何可以接受的答案。 这里有一些重复的问题,但没有一个可以接受的答案: 还有两个问题已被接受,但答案并不适用: 通过这种方式,您可以确定是否可以访问internet—无需处理ping请求或类似的问题 Use the below class to check whether internet is available or not. 供参考: Java import an

当设备连接到网络但没有互联网连接时,我想检查互联网连接。 我想知道检查这个的最好方法是什么

我问这个问题是因为没有找到任何可以接受的答案。 这里有一些重复的问题,但没有一个可以接受的答案:

还有两个问题已被接受,但答案并不适用:

通过这种方式,您可以确定是否可以访问internet—无需处理ping请求或类似的问题

Use the below class to check whether internet is available or not.
供参考:

Java

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class ConnectionDetector {

private Context _context;

public ConnectionDetector(Context context){
    this._context = context;
}

public boolean isConnectingToInternet(){
    ConnectivityManager connectivity = (ConnectivityManager)   _context.getSystemService(Context.CONNECTIVITY_SERVICE);
      if (connectivity != null) 
      {
          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;
}
}
导入android.content.Context;
导入android.net.ConnectivityManager;
导入android.net.NetworkInfo;
公共类连接检测器{
私人语境(private Context)(私人语境);;
公共连接检测器(上下文){
这._context=context;
}
公共布尔值未连接到Internet(){
ConnectivityManager connectivity=(ConnectivityManager)_context.getSystemService(context.connectivity_SERVICE);
if(连接性!=null)
{
NetworkInfo[]info=connectivity.getAllNetworkInfo();
如果(信息!=null)
对于(int i=0;i
对否决票:请解释你的否决票。对于某些用户来说,这是一个完全合法的问题。很明显,@f470071因为它是无数类似问题的复制品,在这里继续。。。艾哈迈德没有做任何研究…@Selvin,请再读一遍这个问题。你能给我一个公认的答案吗?我想你不明白可靠地检测互联网接入是不可能的。没有一个系统可以检测到没有响应的服务器(即使您可以访问Internet)和被阻止的连接(没有Internet)之间的差异。所有现有的方法都只是尝试ping一个可能可用的服务器。不应该混淆网络访问和互联网访问。我知道,你可以轻松地使用WiFi,无需外部连接。这就是为什么这个代码检查互联网连接,而不是WiFi接入。不工作!当wifi已连接但没有互联网时,“断开连接”将成为现实!这是关于您的问题的官方示例代码。当连接了wifi但没有互联网连接时,返回true!然后试试这个例子。但是在我的项目中使用了上面的例子。
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class ConnectionDetector {

private Context _context;

public ConnectionDetector(Context context){
    this._context = context;
}

public boolean isConnectingToInternet(){
    ConnectivityManager connectivity = (ConnectivityManager)   _context.getSystemService(Context.CONNECTIVITY_SERVICE);
      if (connectivity != null) 
      {
          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;
}
}