Android デバイスがインターネット接続に接続されているかどうかを確認するにはどうすればよいですか? 現在、私は以下のコードを使用しています:
ConnectivityManager connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
boolean isConnectedToNetwork = (networkInfo != null && networkInfo.isConnected());
ただし、上記のコードの問題は、デバイスがネットワークに接続されているかどうかのみを確認することです。インターネット接続が利用可能かどうかはチェックしません。たとえば、デバイスがインターネット アクセスのないルーターに接続されている場合でもisConnectedToNetwork
、技術的にはルーター経由でネットワークに接続されているため、true が返されます。ルーターがインターネットに接続されていないだけです。
私が見た提案は、ダウンする可能性が非常に低い Web サイトへの接続を試みることです。この例は、www.google.com です。ただし、これはこれに対する適切な解決策ではないと思います。まず、ユーザーが GPRS を使用していて、インターネットの使用に対して KB ごとに課金されている場合、ユーザーはこれに対して追加料金を負担することになります。第二に、このようなサード パーティの Web サイトを使用することは倫理的ではないと思います。これが本当にインターネット接続を確認する唯一の方法ですか、それとも別の解決策を提案できますか? 彼らの同意なしにそのようにGoogleに接続することは本当に大丈夫ですか? デバイスがインターネットに接続されているかどうかを確認するにはどうすればよいですか?