ConnectivityManager.getActiveNetworkInfo () / NetworkInfo устарела в API 29. Какая альтернатива? - PullRequest
0 голосов
/ 11 июля 2019

Похоже, что вся NetworkInfo устарела в API 29.

Поэтому я ищу альтернативу, чтобы проверить, подключена ли сеть.Например, альтернатива

connectivityManager.activeNetworkInfo?.isConnected == true

Sidenote: Я знаю, что сейчас есть обратный вызов, но я хотел бы получить эту информацию синхронно.Также, конечно, я знаю, что это может быть не точная информация, хотя я бы хотел ее получить.

Ответы [ 2 ]

0 голосов
/ 11 июля 2019
android.net.NetworkInfo

Этот класс устарел на уровне API 29. Вместо этого вам следует использовать ConnectivityManager.NetworkCallback API, чтобы узнать об изменениях подключения

Ссылка на ссылку https://developer.android.com/reference/android/net/NetworkInfo.html

ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest.Builder builder = new NetworkRequest.Builder();

connectivityManager.registerNetworkCallback(
                    builder.build(),
                    new ConnectivityManager.NetworkCallback() {

                        @Override
                        public void onAvailable(Network network) {
                            // Network Available
                        }


                        @Override
                        public void onLost(Network network) {
                            // Network Not Available
                        }
                    }
            );
0 голосов
/ 11 июля 2019

Это работает на API 29:

connectivityManager.isDefaultNetworkActive
...