Как следить за доступом в интернет в фоновом режиме приложения - PullRequest
0 голосов
/ 15 мая 2019

У меня есть один метод, который должен выполняться, когда устройство может получить доступ к Интернету (может пинговать до 8.8.8.8, а не просто подключаться или быть доступным). Какой метод следует использовать для обнаружения доступа в Интернет (может / не может связаться с сервером) как приложение, работающее на переднем плане, так и в фоновом режиме?

Я использую NetworkCallback (onAvailable () и onLost ()) с JobService (с помощью registerNetworkCallback в onStartJob ()). Он может правильно выполнять подключение к Интернету, но не доступ к Интернету.

class MyNetworkCallback() : ConnectivityManager.NetworkCallback() {

    override fun onAvailable(network: Network?) {
        super.onAvailable(network)
        Log.i("ConnectionStatus", "Connected")
        // perform my method
    }

    override fun onLost(network: Network?) {
        super.onLost(network)
        Log.i("ConnectionStatus", "Disconnected")
    }
}

Как проверить доступ в интернет на Android? InetAddress никогда не истекает Эта тема хороша о том, как проверять доступ в Интернет многими способами, но я не знаю, как интегрировать этот метод в JobService для постоянного наблюдения за доступом в Интернет, чтобы проверить, может ли устройство связаться с сервером или нет.

Что я хочу:

  1. когда приложение работает как на переднем, так и на заднем плане, устройство подключается к Интернету, и устройство может получить доступ к серверу ==> execute method ()

  2. когда приложение работает как на переднем, так и на заднем плане, устройство подключается к Интернету, НО устройство не может получить доступ к серверу ==> НЕ выполнять метод ()

  3. когда приложение работает как на переднем, так и на заднем плане, устройство не подключено к Интернету и устройство не может получить доступ к серверу ==> НЕ выполнять метод ()
...