У меня есть один метод, который должен выполняться, когда устройство может получить доступ к Интернету (может пинговать до 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 для постоянного наблюдения за доступом в Интернет, чтобы проверить, может ли устройство связаться с сервером или нет.
Что я хочу:
когда приложение работает как на переднем, так и на заднем плане, устройство подключается к Интернету, и устройство может получить доступ к серверу ==> execute method ()
когда приложение работает как на переднем, так и на заднем плане, устройство подключается к Интернету, НО устройство не может получить доступ к серверу ==> НЕ выполнять метод ()
- когда приложение работает как на переднем, так и на заднем плане, устройство не подключено к Интернету и устройство не может получить доступ к серверу ==> НЕ выполнять метод ()