私はthisに続き、インターネット接続の可用性をチェックしました。私が直面している問題は、デスクトップ(Wi-Fiホットスポットとして機能する)にインターネット接続がない場合でも、このコードはまだ肯定的です。私は、無線LANの信号が欠落している場合は、結果が否定的でなければならないことを確認したい。 これを達成できますか?Android:インターネット接続を確認する
1
A
答えて
0
に戻って応答するかどうかを見ることができる、あなたは、インターネット接続が利用可能であるかどうか、わかります方法を持っていますが、あなたは思い接続の品質を記述していないため、これでは不十分であることを示しています。
いくつかのWebサイトをポーリングして、応答を得て、それに基づいてネットワーク要求を続行するかどうかを判断できます。しかし、私の意見では、それは価値がない。
代わりに、あなたのリクエストを送信して、ネットワークエラーを処理するだけで済みます。なぜなら、どうにかする必要がある(サーバーがダウンしている可能性があるためです)。それで、なぜ余分なテストをするのですか?
2
これは私が私のアプリでのインターネット接続がありますかどうかを確認するために使用しています、そしてそれは私のために働いていたコードです:
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return ((activeNetworkInfo != null) && activeNetworkInfo.isConnected());
}
0
お使いのデバイスは、無線LANに接続されているが、あなたが入力されたデータを取得することはできません。ですから、Google.comや他のサイトにpingを実行し、それがコード200だから、
public class internetchek extends AsyncTask<Void,Void,Void> {
public boolean connection;
Context ctx;
public internetchek(Context context){
this.ctx = context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
if(isNetworkAvailable(this.ctx))
{
Log.d("NetworkAvailable","TRUE");
if(connectGoogle())
{
Log.d("GooglePing","TRUE");
connection=true;
}
else
{
Log.d("GooglePing","FALSE");
connection=false;
}
}
else {
connection=false;
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
}
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
return true;
}
return false;
}
public static boolean connectGoogle() {
try {
HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
urlc.setRequestProperty("User-Agent", "Test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(10000);
urlc.connect();
return (urlc.getResponseCode() == 200);
} catch (IOException e) {
Log.d("GooglePing","IOEXCEPTION");
e.printStackTrace();
return false;
}
}}
関連する問題
- 1. androidのインターネット接続を確認する
- 2. Android - インターネット接続を確認して自動接続する
- 3. Android:インターネット接続を確立
- 4. インターネット接続の確認
- 5. インターネット接続を常に確認する
- 6. Jquery - インターネット接続を確認する
- 7. アクティブなインターネット接続を確認する
- 8. iOSのインターネット接続を確認する
- 9. バッチコマンドと「インターネット接続を確認する」
- 10. Android:アクティブなインターネット接続を確認する最も効果的な方法は
- 11. アンドロイドでインターネット接続を確認する(ネットワーク接続ではない)
- 12. ブール変数を比較してインターネット接続を確認する
- 13. Qt - インターネット接続を確認してスレッドを作成する
- 14. Rssインターネット接続を確認してメッセージを表示する
- 15. アプリを閉鎖してインターネット接続を確認する(コルドバ)
- 16. アプリケーションの開始時にインターネット接続を確認する
- 17. Windows Mobile 6.5 C++ - インターネット接続を確認する
- 18. コードネーム:インターネット接続とサスペンドモードを確認する方法
- 19. UWPで有線インターネット接続を確認する方法は?
- 20. アプリ全体のインターネット接続を確認する方法
- 21. BroadcastRecieverは(インターネット接続を確認するには)活動
- 22. dagger 2のインターネット接続を確認する方法okhttp3
- 23. ブロードキャスト受信機がインターネット接続を確認する
- 24. xamarinフォームのインターネット接続の可否を確認する
- 25. Javaでのインターネット接続を確認する
- 26. Ionic 2 - 各リクエストのインターネット接続を確認する
- 27. は、私は私のインターネット接続を確認するため、次のコードを使用してインターネットに接続
- 28. バックグラウンドで、インターネット接続、IOSを確認できるアプリ
- 29. インターネット接続を確認し、フラグメント(ボトムシート)を使用してインターネット接続エラーを表示します
ルータ/モデムとして動作しているデスクトップがデスクトップに接続されていない場合は、WebサーバーまたはGoogle.comに電話をかけて接続が有効であることを確認できます。 –
あなたは私の答えを試しましたか、それはあなたのために働いたのですか? – Vucko
こんにちはVucko ...あなたの方法は正常に動作します。 – Mandroid