我正在开发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;
}
这种方法有效,但会减慢我的应用程序,因为它在Timer中使用,每隔5秒检查一次用户的连接。我需要实时了解用户的连接状态......
有人知道另一种验证互联网连接的方法吗? 也许用java反射......?
答案 0 :(得分:-2)
ConnectivityManager mConnMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
public boolean hasWifi() {
return mConnMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI) != null
&& mConnMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
}
这是你想要的吗?