Intereting Posts
ClassNotFoundException при разборке и действительно не знаю, почему Как добавить полосы прокрутки в LinearLayout в Android? Причина для NullPointerException android.support.v7.widget.RecyclerView.onMeasure Как получить символ валюты по названию валюты? SHA1 Ключ для DEBUG & RELEASE ANDROID STUDIO MAC Где установить Android SDK на Mac OS X? Могу ли я использовать Cobertura на модульных тестах с помощью PowerMock? Ошибка GCM – googleCloudMessaging.register Обнаруживать отсутствие наушника (только для громкой связи) на устройстве Android Как получить нажатие кнопки в фрагменте хоста из фрагмента диалога Ошибка при импорте проекта андроида («Неверное местоположение» или «Причина: неожиданный конец данных блока») Как использовать 32-разрядные собственные библиотеки на 64-битном Android-устройстве Confused о testCompile и androidTestCompile в Android Gradle Как изменить / уменьшить размер счетчика Android? Разнообразие ошибок HTTP при общении с сервером из приложения Android

Android – Как проверить доступ в Интернет, а не только подключение к Wi-Fi?

Я попробовал приведенный ниже код, чтобы проверить, подключен ли мой мобильный телефон к беспроводной сети, и он хорошо работает, когда я хочу знать, подключен ли мой мобильный телефон к сети, но он не может предоставить информацию об интернет-доступе … что-то вроде " Pinging "на любом веб-сайте. На самом деле я следил за многими ссылками, но ответа пока нет, поэтому я буду благодарен, если кто-нибудь может помочь.

Заранее спасибо.

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Toast t = new Toast(getApplicationContext()); if (isInternetOn()) { // INTERNET IS AVAILABLE, DO STUFF.. Toast.makeText(ConnectivityTestActivity.this,"Network is Available", Toast.LENGTH_LONG).show(); } else { // NO INTERNET AVAILABLE, DO STUFF.. Toast.makeText(ConnectivityTestActivity.this,"No Network Available", Toast.LENGTH_LONG).show(); } } public final boolean isInternetOn() { ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); // ARE WE CONNECTED TO THE NET if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED || connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTING || connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING || connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED ) { // MESSAGE TO SCREEN FOR TESTING (IF REQ) //Toast.makeText(this, connectionType + ” connected”, Toast.LENGTH_SHORT).show(); return true; } else if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED || connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED ) { return false; } return false; }} 

РЕДАКТИРОВАТЬ:

Следуйте ниже, ссылка содержит отличный ответ для Ping google server и получить результат

https://stackoverflow.com/a/16458623/1239911

Solutions Collecting From Web of "Android – Как проверить доступ в Интернет, а не только подключение к Wi-Fi?"

На самом деле я использовал ту же функцию isInternetOn() но я удалил условие соединения. Он должен был проверить статус соединения, если он подключен или нет, и если он пытается подключиться. Это не сработало для меня, поэтому я удалил проверку статуса соединения, а затем он сработал.

Спасибо за все ответы.

 public final boolean isInternetOn() { ConnectivityManager connec = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); // ARE WE CONNECTED TO THE NET if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED || connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED ) { // MESSAGE TO SCREEN FOR TESTING (IF REQ) //Toast.makeText(this, connectionType + ” connected”, Toast.LENGTH_SHORT).show(); return true; } else if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED || connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED ) { return false; } return false; } 

См. Образец:

 public static boolean isWifiEnabled() { if ( !gWifiManager.isWifiEnabled()) { if (mCanShowWifiToast) { new Thread(mWifiToastControl).start(); G.gHandler.post(mNoWifiRunnable); } return false; } else { int linkspeed = gWifiManager.getConnectionInfo().getLinkSpeed(); if (linkspeed < 5) { if (mCanShowWifiToast) { new Thread(mWifiToastControl).start(); G.gHandler.post(mNoWifiRunnable); } return false; } } return true; } 

Вы можете использовать BroadcastReceivers, который будет срабатывать при изменении состояния соединения: есть аналогичный вопрос с ответом: Трансляция намерений для Bluetooth, Wi-Fi и режима звонка