2

この質問はhow-do-you-check-the-internet-connection-in-android に関連しています。

@Williamソリューションは私を大いに助けますが、限られた接続では機能しません。

ワイヤレス モデムに接続しましたが、このモデムはインターネットに接続されていません。

android docsによると、この関数はすべての作業を行うはずですが、関数によってチェックされるデータは、android -> モデムの間のみであり、android -> webservice (インターネット) ではないと思います。

@William コードは次のとおりです。

final ConnectivityManager conMgr =  (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo activeNetwork = conMgr.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected()) {
     //notify user you are online
} else {
     //notify user you are not online
} 

インターネット接続を確認するにはどうすればよいですか? 何か足りない?

4

2 に答える 2

0

これを試して

  public static boolean isInternetConnection(Context mContext) {
    final ConnectivityManager connMgr = (ConnectivityManager) mContext
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    final android.net.NetworkInfo wifi = connMgr
            .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    final android.net.NetworkInfo mobile = connMgr
            .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    if (wifi.isAvailable()
            && wifi.getState() == NetworkInfo.State.CONNECTED) {
        return true;
    } else if (mobile.isAvailable()
            && mobile.getState() == NetworkInfo.State.CONNECTED) {
        return true;
    } else {
        return false;
    }
}

public static boolean isWifi(Context mContext) {
    final ConnectivityManager connMgr = (ConnectivityManager) mContext
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    final android.net.NetworkInfo wifi = connMgr
            .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    if (wifi.isAvailable()) {
        return true;
    } else {
        return false;
    }
}

public static boolean isOtherNetwork(Context mContext) {
    final ConnectivityManager connMgr = (ConnectivityManager) mContext
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    final android.net.NetworkInfo mobile = connMgr
            .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    if (mobile.isAvailable()) {
        return true;
    } else {
        return false;
    }
}

あなたのメニフェストに許可を追加してください

        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
于 2013-06-07T14:06:05.160 に答える