デバイスがインターネットに接続されているかどうかを確認するには、次のコード行があります。無線ネットワーク経由でアンドロイドでモバイルネットワークをリクエストする
boolean hasInternet = false;
HttpURLConnection urlc = null;
try {
urlc = (HttpURLConnection)
(new URL("http://clients3.google.com/generate_204")
.openConnection());
} catch (IOException e) {
e.printStackTrace();
}
urlc.setRequestProperty("User-Agent", "Android");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1500);
urlc.connect();
hasInternet = (urlc.getResponseCode() == 204 &&
urlc.getContentLength() == 0);
私は無線インターネット接続を使用するとすべてがうまく、hasInternet値がtrueです。しかし、私はモバイルネットワークプロバイダを使用すると、hasInternetの値は常にfalseですが、私は自分のモバイルブラウザで任意のサイトを開くことができます。問題であると想定されるのは?モバイルデバイスで利用可能なisNetworkをチェックするために
あなたのモバイルネットワークは、無線ネットワーク、その後遅くなる可能性がありとのconnecttimeout増やしてみてください。 5秒または10秒に設定してみてください –
@RajenRaiyarela私は10秒のタイムアウトで試しましたが、何も達成されませんでした! – Sina