create class connectivity manager in livedata
class Connectivity_check_internet(val context: Context) : LiveData<Boolean>() {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
var Connnectserver: Boolean? = false
val reciveconnctivitymanager = object : BroadcastReceiver() {
override fun onReceive(p0: Context?, p1: Intent?) {
Connnectserver=false
UnpdateConnection()
postValue(Connnectserver)
}
}
init {
UnpdateConnection()
}
fun UnpdateConnection(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val capabilities = connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)
capabilities?.run {
Connnectserver=capabilities!!.hasTransport(TRANSPORT_CELLULAR) || capabilities.hasTransport(TRANSPORT_WIFI)
}
} else {
try {
val activeNetworkInfo = connectivityManager.activeNetworkInfo
Connnectserver = activeNetworkInfo != null && activeNetworkInfo.isConnected
} catch (e: Exception) {
}
}
}
override fun onActive() {
super.onActive()
context.registerReceiver(
reciveconnctivitymanager,
IntentFilter("android.net.conn.CONNECTIVITY_CHANGE")
)
}
override fun onInactive() {
super.onInactive()
context.unregisterReceiver(reciveconnctivitymanager)
}
}
class MainActivity : AppCompatActivity() {
val Connectivity_internet by lazy {
Connectivity_check_internet(this)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Connectivity_internet.observe(this,{
Log.e("TAG", "onCreate: "+it )
})
}
}