Как проверить, находится ли устройство в состоянии подключения при подключении к Wi-Fi или мобильным данным? - PullRequest
0 голосов
/ 25 октября 2018

Я разрабатываю приложение для Android, которое запускает мой веб-сервис при запуске приложения.Мое приложение в основном домашнее приложение устройства.То есть, когда пользователь перезагрузит устройство, Мое приложение будет перед ним.

Пока это здорово.Но я заметил, что при запуске приложения устройству требуется от 5 до 10 секунд, чтобы подключиться к Интернету.в то время как мой веб-сервис запускается до того, как Интернет будет установлен, выдает ошибку «Произошла ошибка, повторите попытку позже».

Что я хочу: Хотя я показываю это сообщение, ядействительно не удовлетворен, так как я действительно хочу показать пользователю сообщение.Это сообщение должно быть «Устройство подключено к Интернету»

, но, к сожалению, я не могу этого сделать.Я использую следующий код

    public static boolean isNetworkAvailable(Context context) {
    ConnectivityManager connectivityManager
            = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting();
}

, но он действительно указывает мне, подключена сеть или нет.

Так что нет такого случая, когда я могу показать сообщение типа "Пожалуйста, подождите, устройство подключено к Интернету"

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

1 Ответ

0 голосов
/ 25 октября 2018

Зарегистрируйте локальный (или, если хотите, объявленный манифестом) широковещательный приемник в своей деятельности (документация здесь https://developer.android.com/guide/components/broadcasts),, прослушивающего изменения подключения, используя этот фильтр намерений: IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION). Затем проверьте, имеет ли устройствоподключение к Интернету с кодом, который вы опубликовали. Не забудьте зарегистрировать приемник вещания в методе onResume () и отменить его регистрацию в методе onPause ()

  • От API 24 и выше:

вы можете использовать registerDefaultNetworkCallback https://developer.android.com/reference/android/net/ConnectivityManager.html#registerDefaultNetworkCallback(android.net.ConnectivityManager.NetworkCallback)

Обратный вызов имеет открытый метод с именем "onAvailable" https://developer.android.com/reference/android/net/ConnectivityManager.NetworkCallback.html#onAvailable(android.net.Network), который вызывается, когда новая сеть готова к использованию.

...