1

デバイスのインターネット接続を確認する次の方法があります。

public static boolean checkInternetConnection(Context context) {
    ConnectivityManager connectivityManager = 
            (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

    if (connectivityManager.getActiveNetworkInfo() != null
            && connectivityManager.getActiveNetworkInfo().isAvailable()
            && connectivityManager.getActiveNetworkInfo().isConnected()) {
        return true;
    } else {
        return false;
    }

}

しかし、しばらくすると、この方法はネットワーク接続のみをチェックすることがわかりました。デバイスがルーターに接続されていて、ルーターがオンになっているがインターネットが利用できない場合、このメソッドは true を返します。

では、実際のインターネットがあるかどうかを知る方法は?

4

4 に答える 4

4

では、「実際のインターネット」とは何でしょう?いつでもインターネット上の任意のホストに接続できる機能? テストするのは少し難しいですよね?よく知られているサーバー (Google、NASA、あなたの国のトップ プロバイダーのホームページ) に接続してみてください。うまくいけば、おそらく「実際のインターネット」を利用できます。

于 2012-12-17T05:39:36.433 に答える
1

私が見る唯一の方法は、Google のような Web サイトに接続しようとすることです。結果が得られれば、それを確信できます。それ以外の場合は、インターネット アクティビティはありません。

于 2012-12-17T05:43:56.327 に答える
0

この機能を試してみてください...

public static Boolean checknetwork(Context mContext) 
    {

        NetworkInfo info = ((ConnectivityManager) mContext
                .getSystemService(Context.CONNECTIVITY_SERVICE))
                .getActiveNetworkInfo();
        if (info == null || !info.isConnected()) 
        {

            return false;
        }
        if (info.isRoaming()) 
        {
            // here is the roaming option you can change it if you want to
            // disable internet while roaming, just return false
            return true;
        }

        return true;

    }
于 2012-12-17T05:39:15.977 に答える
0

このトピックには、提案された解決策を含む回答を含む多くの質問が既にあります。これらのいくつかを見てみてください。

SMS を送信する前に、Android のネットワーク カバレッジを確認してください

Android でインターネット アクセス (テザリングを含む!) を確認する方法は?

Androidでネットワークが利用できないことを判断する方法

于 2012-12-19T10:23:04.970 に答える