Проверка, если сеть подключена (Wi-Fi или мобильные данные) Android Java - PullRequest
0 голосов
/ 19 мая 2019

В настоящее время я обнаруживаю, связан ли WIFI со следующим кодом:

        BroadcastReceiver wifiStateReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            int wifiStateExtra = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
                    WifiManager.WIFI_STATE_UNKNOWN);
            Log.v("Log","Wifi Toggled");

        }
    };

    IntentFilter intentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION);
    context.registerReceiver(wifiStateReceiver, intentFilter);

    wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);

Этот код будет сообщать мне, когда Wi-Fi включен или выключен. Я ищу что-то вроде этого, которое будет отправлять мне уведомления каждый раз, когда изменяется состояние моей сети, то есть, когда у меня есть или нет подключения (Wi-Fi ИЛИ мобильные данные) к Интернету. Могу ли я использовать что-то вроде NetworkManger, которое сообщит мне, изменился ли статус сети?

1 Ответ

0 голосов
/ 19 мая 2019

Ознакомьтесь с официальной документацией для определения и контроля состояния подключения .

Чтобы определить, есть ли у вас подключение к Интернету

ConnectivityManager cm =
 (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
                      activeNetwork.isConnectedOrConnecting();

Чтобы определить тип вашего интернет-соединения

(подключение устройства может быть обеспечено мобильными данными, WiMAX, Wi-Fi и сетевыми подключениями)

boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;

Отслеживание изменений в подключении

Приложения, ориентированные на Android 7.0 (уровень API 24) и выше, не получают широковещательные сообщения CONNECTIVITY_ACTION, если они объявляют получателя широковещательных сообщений в своем манифесте. Приложения по-прежнему будут получать широковещательные сообщения CONNECTIVITY_ACTION, если они зарегистрируют свой BroadcastReceiver в Context.registerReceiver () и этот контекст будет по-прежнему действителен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...