Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测互联网连接是否可用,并使用Android API 15+;_Android_Android Internet - Fatal编程技术网

检测互联网连接是否可用,并使用Android API 15+;

检测互联网连接是否可用,并使用Android API 15+;,android,android-internet,Android,Android Internet,我需要检测互联网连接是否可用,并且在安卓系统中工作正常。在开始任何WebView活动之前,我需要调用此条件检查 到目前为止,我已成功实现了以下答案中的isAvailable()功能: 但是,如果打开wifi但未连接以太网插头,则上述方法将失败。 有人说使用ping是个好主意。但我无法成功实现此功能 如何在中给出的代码中实现ping功能 我的android应用程序使用改型API发送和接收PHP内容。改装是否有助于检查internet连接 您能推荐其他简单易用的方法来检查实时互联网连接吗 我使用的

我需要检测互联网连接是否可用,并且在安卓系统中工作正常。在开始任何WebView活动之前,我需要调用此条件检查

到目前为止,我已成功实现了以下答案中的isAvailable()功能:

但是,如果打开wifi但未连接以太网插头,则上述方法将失败。 有人说使用ping是个好主意。但我无法成功实现此功能

  • 如何在中给出的代码中实现ping功能
  • 我的android应用程序使用改型API发送和接收PHP内容。改装是否有助于检查internet连接
  • 您能推荐其他简单易用的方法来检查实时互联网连接吗
  • 我使用的代码来自:-

  • 类名:AppStatus

      import android.content.Context;
      import android.net.ConnectivityManager;
      import android.net.NetworkInfo;
      import android.util.Log;
      public class AppStatus {
    
      private static AppStatus instance = new AppStatus();
      static Context context;
      ConnectivityManager connectivityManager;
      NetworkInfo wifiInfo, mobileInfo;
      boolean connected = false;
    
      public static AppStatus getInstance(Context ctx) {
              context = ctx.getApplicationContext();
              return instance;
          }
    
          public boolean isOnline() {
    try {
        connectivityManager = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
    
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
    connected = networkInfo != null && networkInfo.isAvailable() &&
            networkInfo.isConnected();
    return connected;
    
    
    } catch (Exception e) {
        System.out.println("CheckConnectivity Exception: " + e.getMessage());
        Log.v("connectivity", e.toString());
    }
    return connected;
    
    }

  • 此代码有助于检查internet连接,但在上述情况下失败:-

    if (AppStatus.getInstance(this).isOnline()) {
        Toast.makeText(this,"You are online!!!!",8000).show();
    } else {
        Toast.makeText(this,"Internet Connection is required !",8000).show();
        Log.v("Home", "############################You are not online!!!!");
        finish();
    }
    

  • 感谢@camelCaseCoder的评论。 我得到了一个我成功实现的代码,我想和大家分享,因此我回答我自己的问题

  • AppStatus变为(在注释掉前面的代码后):-

            public class AppStatus {
    
            private static AppStatus instance = new AppStatus();
            static Context context;
            //ConnectivityManager connectivityManager;
            //NetworkInfo wifiInfo, mobileInfo;
            //boolean connected = false;
    
            public static AppStatus getInstance(Context ctx) {
                context = ctx.getApplicationContext();
                return instance;
            }
    
            public boolean isOnline() {
                /*try {
        connectivityManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
    
        NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
        connected = networkInfo != null && networkInfo.isAvailable() &&
                networkInfo.isConnected();
        return connected;
    
    
    } catch (Exception e) {
        System.out.println("CheckConnectivity Exception: " + e.getMessage());
        Log.v("connectivity", e.toString());
    }
    return connected;
    */
    Runtime runtime = Runtime.getRuntime();
    try {
    
        Process ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
        int     exitValue = ipProcess.waitFor();
        return (exitValue == 0);
    
    } catch (IOException e)          { e.printStackTrace(); }
    catch (InterruptedException e) { e.printStackTrace(); }
    
    return false;
    
    }

  • }

  • 它的实现与以前类似:-

    //check for internet connectivity by calling isOnline-using Ping @google
    if (AppStatus.getInstance(this).isOnline()) {
        Toast.makeText(this, "You are online!!!!", 8000).show();
    } else {
        Toast.makeText(this,"Internet Connection is required !",8000).show();
        Log.v("Home", "############################You are not online!!!!");
        finish();
    }
    

  • 感谢@camelCaseCoder的评论。 我得到了一个我成功实现的代码,我想和大家分享,因此我回答我自己的问题

  • AppStatus变为(在注释掉前面的代码后):-

            public class AppStatus {
    
            private static AppStatus instance = new AppStatus();
            static Context context;
            //ConnectivityManager connectivityManager;
            //NetworkInfo wifiInfo, mobileInfo;
            //boolean connected = false;
    
            public static AppStatus getInstance(Context ctx) {
                context = ctx.getApplicationContext();
                return instance;
            }
    
            public boolean isOnline() {
                /*try {
        connectivityManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
    
        NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
        connected = networkInfo != null && networkInfo.isAvailable() &&
                networkInfo.isConnected();
        return connected;
    
    
    } catch (Exception e) {
        System.out.println("CheckConnectivity Exception: " + e.getMessage());
        Log.v("connectivity", e.toString());
    }
    return connected;
    */
    Runtime runtime = Runtime.getRuntime();
    try {
    
        Process ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
        int     exitValue = ipProcess.waitFor();
        return (exitValue == 0);
    
    } catch (IOException e)          { e.printStackTrace(); }
    catch (InterruptedException e) { e.printStackTrace(); }
    
    return false;
    
    }

  • }

  • 它的实现与以前类似:-

    //check for internet connectivity by calling isOnline-using Ping @google
    if (AppStatus.getInstance(this).isOnline()) {
        Toast.makeText(this, "You are online!!!!", 8000).show();
    } else {
        Toast.makeText(this,"Internet Connection is required !",8000).show();
        Log.v("Home", "############################You are not online!!!!");
        finish();
    }
    

  • 它的可能副本似乎有我需要的PING代码。我将尝试将其与我的代码集成,然后查看。谢谢@camelCaseCoder。我集成了在您提供的链接中找到的代码。我也在我的答案中添加了它。它的可能副本似乎有我需要的PING代码。我将尝试将其与我的代码集成,然后查看。谢谢@camelCaseCoder。我集成了在您提供的链接中找到的代码。我在答覆中亦加入了这一点。