检测互联网连接是否可用,并使用Android API 15+;
我需要检测互联网连接是否可用,并且在安卓系统中工作正常。在开始任何WebView活动之前,我需要调用此条件检查 到目前为止,我已成功实现了以下答案中的isAvailable()功能: 但是,如果打开wifi但未连接以太网插头,则上述方法将失败。 有人说使用ping是个好主意。但我无法成功实现此功能检测互联网连接是否可用,并使用Android API 15+;,android,android-internet,Android,Android Internet,我需要检测互联网连接是否可用,并且在安卓系统中工作正常。在开始任何WebView活动之前,我需要调用此条件检查 到目前为止,我已成功实现了以下答案中的isAvailable()功能: 但是,如果打开wifi但未连接以太网插头,则上述方法将失败。 有人说使用ping是个好主意。但我无法成功实现此功能 如何在中给出的代码中实现ping功能 我的android应用程序使用改型API发送和接收PHP内容。改装是否有助于检查internet连接 您能推荐其他简单易用的方法来检查实时互联网连接吗 我使用的
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;
}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的评论。 我得到了一个我成功实现的代码,我想和大家分享,因此我回答我自己的问题
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的评论。 我得到了一个我成功实现的代码,我想和大家分享,因此我回答我自己的问题
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。我集成了在您提供的链接中找到的代码。我在答覆中亦加入了这一点。