【问题标题】:How to check working wifi is there or not?如何检查工作wifi是否存在?
【发布时间】:2016-05-11 12:06:21
【问题描述】:
public boolean isConnected(Context context) {
    connected=false;
    ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivity != null) {
        NetworkInfo info = connectivity.getActiveNetworkInfo();
        if (info != null && info.getState() == NetworkInfo.State.CONNECTED && info.isConnected()) {
           Log.e("link",new Gson().toJson(info.getDetailedState()));
            connected=true;
            Needle.onBackgroundThread().execute(new Runnable() {
                @Override
                public void run() {

                    try {
                        HttpURLConnection urlc = (HttpURLConnection) (new URL(mainDomain).openConnection());
                        urlc.setRequestProperty("User-Agent", "Test");
                        urlc.setRequestProperty("Connection", "close");
                        urlc.setConnectTimeout(1500);
                        urlc.connect();
                        connected=true;
                        Log.e("connection",new Gson().toJson(urlc.getResponseCode()));

                    } catch (IOException e) {
                        e.printStackTrace();
                        connected=false;
                    }
                }
            });
            return connected;
        }
    }

    return connected;
}

我已经使用了这个代码。它工作正常,但我的问题是我需要调用服务器。有没有其他方法可以检查 WiFi 的速度或工作情况?

WifiManager wifiManager=(WifiManager)this.getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int speedMbps = wifiInfo.getLinkSpeed();

我使用上面的代码来检查速度,但它也不能正常工作。

请帮帮我。提前致谢

【问题讨论】:

    标签: android networking connection android-wifi


    【解决方案1】:

    你可以试试这个

    public static boolean checkInternetConnection(Context context)
    {
        try
        {
            ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            android.net.NetworkInfo wifi = connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
            android.net.NetworkInfo mobile = connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    
            if ((wifi != null && wifi.isConnected())
                    || (mobile != null && mobile.isConnected()))
            {
                return true;
            }
            log("Connection", "Connection failed");
            return false;
        }
        catch (Exception e)
        {
            // TODO: handle exception
            e.printStackTrace();
            return false;
        }
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用以下代码:

      ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
      NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
      return activeNetworkInfo != null && activeNetworkInfo.isConnected();
      

      这会让您知道设备是否已连接。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-08
        • 2015-08-23
        • 1970-01-01
        • 2011-06-16
        • 2014-01-11
        • 2016-02-08
        相关资源
        最近更新 更多