recherche

Maison  >  Questions et réponses  >  le corps du texte

android判断连接的wifi是否有网络

android判断连接的wifi是否有网络。

高洛峰高洛峰2772 Il y a quelques jours590

répondre à tous(4)je répondrai

  • 巴扎黑

    巴扎黑2017-04-17 14:42:07

    public static int getNetWorkStatus(Context context) {

        ConnectivityManager connectivityManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivityManager != null) {
            NetworkInfo networkInfo = connectivityManager
                    .getActiveNetworkInfo();
            if (networkInfo != null && networkInfo.isConnected()) {
                if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
                    return NETWORK_WIFI_CONNECTION;
                }
                return NETWORK_MOBILE_CONNECTION;
            }
        }
        return NETWORK_DISCONNECTION;
    }

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-17 14:42:07

    如果只是想检测网络是否连接,则直接使用 isNetworkConnected()
    如果想检测网络连通性(是否能访问网络),则 isNetworkConnected()isNetworkOnline() 结合使用

    private boolean isNetworkConnected() {
        ConnectivityManager connMgr = (ConnectivityManager)
                getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
        return (networkInfo != null && networkInfo.isConnected());
    }
    
    public boolean isNetworkOnline() {
        Runtime runtime = Runtime.getRuntime();
        try {
            Process ipProcess = runtime.exec("ping -c 1 114.114.114.114");
            int exitValue = ipProcess.waitFor();
            return (exitValue == 0);
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
        return false;
    }

    注:114.114.114.114 可以改成你信任的网站(例如: www.baidu.com)

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-17 14:42:07

    个人经验,不喜勿喷。。。
    我从来都不管用户是连的3G、4G还是WIFI,我也不管连上WIFI是否是真的有网,因为这都不重要。
    重点在于,用户的App能否连接到指定的服务器而已。
    So……
    直接测试和服务器的连接就好了,在没有联网的情况下,会很快抛出异常的。
    Try catch一下就知道了。
    或者专门写一个测试连接的API。

    répondre
    0
  • 黄舟

    黄舟2017-04-17 14:42:07

    直接写个方法 访问http://www.baidu.com 有数据返回表示有网 没数据返回 或异常表示没网络。so

    répondre
    0
  • Annulerrépondre