Как проверить подключение к Интернету в AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как проверить подключение к Интернету в Android

Сообщение Anonymous »

В своем приложении я хочу проверить подключение к Интернету, и для этого я пишу ниже коды.

, но когда перед запуском приложения и отключите Интернет, не вызововает проверенный интернет -код!

Как раз при подключении интернет -подключения, и запустите приложение с подключенным интернетом, отключить Интернет Show Internet подключение или отключение!
< /p>
класс подключения к Интернету < /strong>:
< /p>

Код: Выделить всё

class NetworkConnectivity @Inject constructor(private val manager: ConnectivityManager, private val request: NetworkRequest) : ConnectivityStatus {
override fun observe(): Flow {
return callbackFlow {
val callback = object : ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network) {
super.onAvailable(network)
launch { send(true) }
}

override fun onLost(network: Network) {
super.onLost(network)
launch { send(false) }
}
}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
manager.registerDefaultNetworkCallback(callback)
} else {
manager.registerNetworkCallback(request, callback)
}
awaitClose {
manager.unregisterNetworkCallback(callback)
}
}
}
}
< /code>
 viewmodel class: < /strong>
< /p>
@HiltViewModel
class DetailViewModel @Inject constructor(private val repository: MainRepository) : ViewModel() {
@Inject
lateinit var networkConnectivity: NetworkConnectivity

val detailData = MutableLiveData()
fun callDetailApi(id: Int, apiKey: String) = viewModelScope.launch {
Log.e("DetailLog","ViewModel 1")
networkConnectivity.observe().collect {
if (it) {
Log.e("DetailLog","ViewModel 2")
detailData.value = NetworkRequest.Loading()
//Response
val response = repository.remote.recipeInformation(id, apiKey)
detailData.value = NetworkResponse(response).generalNetworkResponse()
} else {
Log.e("DetailLog","ViewModel 3")
detailData.value = NetworkRequest.Error("No internet connection")
}
}
}
}
после запуска приложения (когда Интернет отключен) просто покажите viewmodel 1 [/b] in in logcat !
Почему бы не проверить Интернет при запуске с отключенным режимом?

Подробнее здесь: https://stackoverflow.com/questions/750 ... in-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»