我在运行时检查 android 中的互联网连接时遇到问题。我使用了一些不同的方法来检查互联网连接,但我不知道哪种方法更好。因为他们每个人都有一些问题。
方法 1通过ping Google 检查互联网连接:
Runtime runtime = Runtime.getRuntime();
try {
Process mIpAddressProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
int mExitValue = mIpAddressProcess.waitFor();
return mExitValue == 0;
} catch (InterruptedException | IOException ignore) {
ignore.printStackTrace();
}
方法 2通过ConnectivityManager 检查互联网连接:
public boolean checkNetwork() {
ConnectivityManager internetManager = (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = internetManager.getActiveNetworkInfo();
return (networkInfo != null && networkInfo.isConnected() && networkInfo.isAvailable() && networkInfo.isConnectedOrConnecting());
}
我在异步任务中使用方法 1,但有时它不能正常工作并减慢应用程序的速度,并且方法 2 (ConnectivityManager) 不检查互联网连接,它只检查网络连接!