0

getConnectState() ブール関数を作成したいと考えています。私は以下の2つの方法を使用します。状況によって結果が異なる理由がわかりません。WiFi をオンにしているときのように、最初のものは true を返すことがありますが、2 つ目は false を返します。この状況では、WiFi は開いていますが、まだ接続されていません。false になることを願っています。最初の 1 つの関数で WiFi が有効になっていることがわかる理由を誰かに説明してもらえますか。

    WifiManager wifiManager=(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    if(wifiManager.getWifiState()==WifiManager.WIFI_STATE_ENABLED)
        return true;
    else
        return false;

    ConnectivityManager conManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networInfo = conManager.getActiveNetworkInfo(); 
    if (networInfo == null || !networInfo.isAvailable()) { 
        return false;
    }
    return true;
4

1 に答える 1

2
WifiManager.WIFI_STATE_ENABLED

Wi-Fi 接続が有効になっているかどうかのみを確認し、接続されているかどうかは確認しません。以下を使用して、接続の状態を確認できます。

ConnectivityManager conManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networInfo = conManager.getActiveNetworkInfo();
if(networInfo.getState()==State.CONNECTED)

ネットワークがWIFIを使用していることを確認したい場合は、使用できます

networInfo.getType()==connection.TYPE_WIFI
于 2012-11-01T03:40:37.363 に答える