2025-09-24 12:26:38 +04:00
|
|
|
package com.example.myapplication
|
|
|
|
|
|
2025-09-24 14:01:30 +04:00
|
|
|
import android.net.ConnectivityManager
|
|
|
|
|
import android.net.Network
|
|
|
|
|
import android.net.NetworkCapabilities
|
2025-09-24 12:26:38 +04:00
|
|
|
import android.os.Bundle
|
2025-09-24 14:01:30 +04:00
|
|
|
import android.widget.TextView
|
2025-09-24 13:41:40 +04:00
|
|
|
import android.widget.Toast
|
2025-09-24 13:25:08 +04:00
|
|
|
import androidx.activity.ComponentActivity
|
2025-09-24 14:01:30 +04:00
|
|
|
import androidx.core.content.getSystemService
|
2025-09-24 12:26:38 +04:00
|
|
|
|
2025-09-24 13:25:08 +04:00
|
|
|
class MainActivity : ComponentActivity() {
|
2025-09-24 13:41:40 +04:00
|
|
|
|
2025-09-24 14:01:30 +04:00
|
|
|
private lateinit var tvStatus: TextView
|
|
|
|
|
private lateinit var connectivityManager: ConnectivityManager
|
2025-09-24 13:41:40 +04:00
|
|
|
|
2025-09-24 12:26:38 +04:00
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
|
|
super.onCreate(savedInstanceState)
|
|
|
|
|
setContentView(R.layout.activity_main)
|
2025-09-24 13:25:08 +04:00
|
|
|
|
2025-09-24 14:01:30 +04:00
|
|
|
tvStatus = findViewById(R.id.tvNetworkStatus)
|
|
|
|
|
connectivityManager = getSystemService()!!
|
|
|
|
|
|
|
|
|
|
// Проверяем сеть при старте
|
|
|
|
|
updateNetworkStatus()
|
2025-09-24 13:41:40 +04:00
|
|
|
|
2025-09-24 14:01:30 +04:00
|
|
|
// Подписываемся на изменения сети
|
|
|
|
|
connectivityManager.registerDefaultNetworkCallback(object : ConnectivityManager.NetworkCallback() {
|
|
|
|
|
override fun onAvailable(network: Network) {
|
|
|
|
|
runOnUiThread {
|
|
|
|
|
tvStatus.text = "Сеть доступна"
|
|
|
|
|
Toast.makeText(this@MainActivity, "Подключение появилось", Toast.LENGTH_SHORT).show()
|
|
|
|
|
}
|
2025-09-24 13:41:40 +04:00
|
|
|
}
|
2025-09-24 14:01:30 +04:00
|
|
|
|
|
|
|
|
override fun onLost(network: Network) {
|
|
|
|
|
runOnUiThread {
|
|
|
|
|
tvStatus.text = "Сеть недоступна"
|
|
|
|
|
Toast.makeText(this@MainActivity, "Подключение потеряно", Toast.LENGTH_SHORT).show()
|
|
|
|
|
}
|
2025-09-24 13:25:08 +04:00
|
|
|
}
|
2025-09-24 14:01:30 +04:00
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Проверка текущего состояния сети
|
|
|
|
|
private fun updateNetworkStatus() {
|
|
|
|
|
val network = connectivityManager.activeNetwork
|
|
|
|
|
val caps = connectivityManager.getNetworkCapabilities(network)
|
|
|
|
|
val connected = caps?.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) == true
|
|
|
|
|
|
|
|
|
|
tvStatus.text = if (connected) "Сеть доступна" else "Сеть недоступна"
|
2025-09-24 12:26:38 +04:00
|
|
|
}
|
|
|
|
|
}
|