[英]Checking hotspot wifi connection with Android without ping
我正在开发Android Projet,我需要知道用户何时可以访问互联网。 (不仅是激活了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中使用而使我的应用程序变慢,该Timer每5秒检查一次用户的连接。 我需要实时了解用户的连接状态...
有人知道验证互联网连接的另一种方法吗? 也许用java反射...?
ConnectivityManager mConnMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
public boolean hasWifi() {
return mConnMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI) != null
&& mConnMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
}
这是你想要的吗 ?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.