1

アプリ全体でインターネット接続を確認したい。グーグルで検索しましたが、結果として、全員が各クラスにインスタンスメソッドを作成し、インターネット接続を確認しようとしました。私の計画は、静的メソッドを使用してクラスを作成し、クラスをインスタンス化せずにそれをチェックすることです。それをするのは良い考えですか?または、別の方法を試す必要がありますか?私の計画は次のようなことをすることです:

public class CheckInternetConnecting {

    public static boolean isOnline(Context context) {
         ConnectivityManager cm =
            (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        return cm.getActiveNetworkInfo() != null &&
            cm.getActiveNetworkInfo().isConnectedOrConnecting();
    }
}
4

3 に答える 3

1

次の方法でインターネット接続を確認することもできます。

public boolean testConnection() {

    try {
        boolean connectionStatus=false;

        InetAddress addr=InetAddress.getByName("8.8.8.8");//google dns 8.8.8.8


        connectionStatus=addr.isReachable(1000); // 1second time for response

    }                               
    catch (Exception e) {
        e.printStackTrace();
        System.out.println(e.toString());
    }

    return connectionStatus;
}
于 2013-02-19T14:19:40.753 に答える
0

おそらく、ここで説明されているように、ブロードキャストレシーバーを登録し、接続の変更をリッスンすることを検討できます。

于 2013-02-19T14:19:49.677 に答える
0

あなたのアプローチはまったく問題ありません。プロジェクトにUtilsパッケージを追加し、そこにHelper-Classesを配置することをお勧めします。したがって、クラスCheckInternetConnectingの代わりに、クラスNetworkHelperを作成し、そこに静的メソッドを配置します。

パッケージの追加:
Eclipseの左側で、パッケージエクスプローラーでsrcフォルダーを右クリックし、新しいパッケージを追加します。たとえば、パッケージ名がcom.my.projectの場合は、com.my.project.utilsというパッケージを追加するよりも、パッケージ名を含めることが重要です。次に、右クリックして、たとえば右クリックして、NetworkHelperクラスを新しいパッケージに追加できます。新しいファイルを追加します。静的コードをNetworkHelperにコピーすると、すべて設定されます...

于 2013-02-19T14:09:50.470 に答える