Постоянная проверка состояния сетевого подключения

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

2 ответа

Вам не нужно опрашивать на Android, вы можете настроить приемник вещания, который будет вызываться при любом изменении состояния подключения с Android 7 (API 24)

Приложения получат CONNECTIVITY_ACTION трансляции, если они регистрируют свои BroadcastReceiver с Context.registerReceiver() до тех пор, пока контекст действителен.

Используйте это для проверки вашего интернет-соединения и используйте таймер или обработчик, чтобы периодически проверять его

public static boolean isConnectedToInternet(){
    ConnectivityManager cm =
            (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo activeNetwork = null;
    if (cm != null) {
        activeNetwork = cm.getActiveNetworkInfo();
    }
    // it need to connect to wifi/LTE and can access the internet
    return activeNetwork != null && activeNetwork.isConnectedOrConnecting();
}

работоспособный

Runnable mStatusChecker = new Runnable() {
    @Override
    public void run() {
        try {
            // check internet connection
        }finally {
            mHandler.postDelayed(mStatusChecker, STATUS_CHECK_INTERVAL);
        }
    }
};
Другие вопросы по тегам