我正在开发一个 Android 项目,我需要知道用户何时可以访问互联网。(不仅仅是wifi被激活。例如在用户使用热点wifi连接的情况下)
我使用这种方法:
public static boolean isOnline(final Context context) {
boolean result = false;
ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connec.getNetworkInfo(0).isConnectedOrConnecting() || connec.getNetworkInfo(1).isConnectedOrConnecting()) {
URL url = new URL("https://www.google.fr");
URLConnection urlConnection;
urlConnection = url.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection) urlConnection;
int responseCode = httpConnection.getResponseCode();
result = (responseCode == 200);
}
return result;
}
此方法有效,但会减慢我的应用程序的速度,因为它用于每 5 秒检查一次用户连接的计时器中。而且我需要实时知道用户的连接状态...
有人知道另一种验证互联网连接的方法吗?也许用java反射......?