Обнаружение соединения Android не работает в Android Studio 2.2.1. Что пошло не так?

#android #android-studio #internet-connection #android-internet

#Android #android-studio #подключение к Интернету #android-интернет

Вопрос:

Ранее я проверял подключение к Интернету и отображал данные соответствующим образом. Если он подключен к Интернету, я использовал для загрузки данных с сервера, а если нет подключения к Интернету, я использовал для загрузки данных в автономном режиме. Однако из Android Studio 2.2.1 это, похоже, не работает. Код, который я использовал, был:

  import android.app.Service;
 import android.content.Context;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;

public class ConnectionDetector {

Context context;

public ConnectionDetector(Context context) {
    this.context = context;
}

     public boolean isConnected(){
    ConnectivityManager connectivity = (ConnectivityManager)      context.getSystemService(Service.CONNECTIVITY_SERVICE);

    if(connectivity!=null){
        NetworkInfo info = connectivity.getActiveNetworkInfo();

        if(info!=null){
            if(info.getState()== NetworkInfo.State.CONNECTED){
                return  true;
            }
        }

    }
    return false;
}
  

Я бы создал новый объект этого класса :

    cd = new ConnectionDetector(this);
  

а затем используйте:

   if(cd.isConnected()){
  -----------
  ---------
  }else {
  ------
  ---
  }
  

Но это не работает в 2.2.1
Какие изменения необходимы, чтобы заставить его работать в 2.2.1?
Я не специалист по программированию.

Комментарии:

1. Надеюсь, вы добавили разрешения в файл манифеста.

2. Да, добавлен манифест. Я думаю, что что-то в версии 2.2.1. Теперь Android Studio выпустила новое обновление 2.2.2. Я думаю, что они исправляют это сейчас.

Ответ №1:

Пожалуйста, используйте это для того, подключено устройство или нет.

  public class ConnectivityDetector {
    public static boolean isConnectingToInternet(Context context) {
        ConnectivityManager connectivity = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null) {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null)
                for (int i = 0; i < info.length; i  )
                    if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                        return true;
                    }
        }
        return false;
    }}
  

Вы можете проверить это следующим образом :

 if (ConnectivityDetector.isConnectingToInternet(ChangePasswordActivity.this)) {
                //Your Code when connected.
            } else {
                Toast.makeText(MainActivity.this, "Please check your Internet connection.", Toast.LENGTH_SHORT).show();
            }