3

時々、Android アプリでインターネット接続を確認する必要があります。

private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null;
}

上記のコードは、利用可能な場合にのみ機能しNetworkます! ただし、私のデバイスにはwifiとがあり、上記の 2 種類のネットワーク接続の両方を使用すると3G、上記のコードは常に返されます。(戻ってきてfalseもまだ使えます)!! 私は何を取りこぼしたか?ありがとう!google.comfalse

4

2 に答える 2

2

これを試して

private boolean haveNetworkConnection() 
{
    boolean haveConnectedWifi = false;
    boolean haveConnectedMobile = false;

    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo[] netInfo = cm.getAllNetworkInfo();
    for (NetworkInfo ni : netInfo) 
    {
        if (ni.getTypeName().equalsIgnoreCase("WIFI"))
            if (ni.isConnected())
                haveConnectedWifi = true;
        if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
            if (ni.isConnected())
                haveConnectedMobile = true;
    }
    return haveConnectedWifi || haveConnectedMobile;
}
于 2012-10-02T09:26:09.073 に答える
2

このコードはどうですか?

        ConnectivityManager connectivityManager = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();

    // Check the current state of the Network Information
    if (networkInfo == null)
        return false;
    if (networkInfo.isConnected() == false)
        return false;
    if (networkInfo.isAvailable() == false)
        return false;
    return true;

これをアプリケーション マニフェスト ファイルにも追加することを忘れないでください。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

于 2012-10-02T09:42:52.357 に答える