У меня была странная проблема в сети в работе.Я бы подключил телефон к нашей сети через Wi-Fi, и он подключился бы к сети grand, и статус был бы «Подключен к имени сети».Но примерно через 10 минут мой телефон был подключен к Wi-Fi.Когда я проверяю статус телефона, он говорит: «аутентификация с помощью [имени сети]. Эта проблема привела к некоторой отладке, так как даже когда он говорит, что это« аутентификация », я все равно мог получить доступ к своим gmail / facebook и веб-сайтам на своем телефоне. Однакокогда я попробовал свой метод подключения, похожий на scorpio, он вернул бы не подключенный к интернету. Вот мой:
/**
* Method to see if device has any access to the Internet.
* @return boolean true if connected, otherwise false.
*/
public boolean isConnectedToInternet()
{
try{
ConnectivityManager cm = (ConnectivityManager) getSystemService
(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected())
{
//Network is available but check if we can get access from the network.
URL url = new URL("http://www.Google.com/");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(2000); // Timeout 2 seconds.
urlc.connect();
if (urlc.getResponseCode() == 200) //Successful response.
{
return true;
}
else
{
Toast.makeText(this, "No connection to internet.", Toast.LENGTH_LONG).show();
Log.d("NO INTERNET", "NO INTERNET");
return false;
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
Toast.makeText(this, "No connection to internet.", Toast.LENGTH_LONG).show();
return false;
}
Однако, когда телефон говорит, что аутентификация этой строки здесь вернет ноль.
NetworkInfo netInfo = cm.getActiveNetworkInfo();
Как я уже говорил при аутентификации, я все еще мог получить доступ к сети на телефоне, и приложения, такие как facebook / gmail, все еще работали, но приложения, такие как мое или некоторые из моих коллег, которые использовали подобный подход выше, не сделали. Что, очевидно, я вижупочему, когда я выяснил, почему это так. Просто мне стало интересно, как приложения, такие как facebook / gmail, проверяют соединение с интернетом. Поэтому мне было интересно, должен ли я просто воспользоваться этим подходом:
URL url = new URL("http://www.Google.com/");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(2000); // Timeout 2 seconds.
urlc.connect();
if (urlc.getResponseCode() == 200) //Successful response.
{
return true;
}
else
{
Toast.makeText(this, "No connection to internet.", Toast.LENGTH_LONG).show();
Log.d("NO INTERNET", "NO INTERNET");
return false;
}
В любом случае, опубликованный вопрос довольно расплывчат, поэтому трудно сказать, чтоВнутренняя проблема, о которой вы говорите, и как ее исправить.Просто похоже на разочарование.