Androidでネットワーク接続を検出する方法については、多くの質問があります。 https://stackoverflow.com/a/4239019/90236は非常に詳細な答えを提供し、https://stackoverflow.com/a/8548926/90236は、接続されているネットワークのタイプを識別する方法を示しています。Androidのネットワーク接続が制限されていますか?
私たちのようなものを答えのようなコードを使用してネットワーク接続を検出:
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
これは、彼らがオフラインの場合、私たちは、ユーザーに警告することができます。ただし、ユーザーの接続が制限されているかどうかはわかりません。接続が限られているためにユーザーが不平を言うような状況があります。
ユーザーは家庭用Wi-Fiネットワークに接続されていますが、ケーブルモデムまたはインターネットサービスは利用できません。
ユーザーはホテルや喫茶店にいて、Wi-Fiネットワークに正常に接続していますが、完全なネットワークアクセスが許可される前にログインまたは利用規約に同意する必要があります。
これらの状況では、isNetworkAvailable()テストはtrueを返します。 OSは私たちにネットワークに接続していることを伝えます。ただし、ユーザーはインターネットに接続することはできません。
ユーザーが完全に機能するネットワーク接続を持っているかどうかを判断する良い方法はありますか?
私は軽量のWebサービスを呼び出して接続性を確認し、サービスから有効な返品を受け取れない場合に警告します。これは過剰ですか?他の人に同様の技術に頼らざるを得なかったか?
私は「justrightkill」のアイデアが好き、それはそれに同じリングを持っていない - http://www.youtube.com/watch?v=YjETcbEDmoQ –
笑非常に面白い..... –