繁体   English   中英

在不ping的情况下使用Android检查热点wifi连接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM