#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();
}