Files
labs-mobile-applications/app/src/main/java/com/example/myapplication/MainActivity.kt
T

53 lines
2.0 KiB
Kotlin
Raw Normal View History

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
}
}