import
android.content.Context
import
android.net.ConnectivityManager
import
android.net.NetworkCapabilities
import
android.os.Build
import
androidx.appcompat.app.AppCompatActivity
import
android.os.Bundle
import
android.widget.Button
import
android.widget.Toast
class
MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val checkButton: Button = findViewById(R.id.buttonCheck)
checkButton.setOnClickListener {
if
(checkForInternet(
this
)) {
Toast.makeText(
this
,
"Connected"
, Toast.LENGTH_SHORT).show()
}
else
{
Toast.makeText(
this
,
"Disconnected"
, Toast.LENGTH_SHORT).show()
}
}
}
private
fun checkForInternet(context: Context): Boolean {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
if
(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val network = connectivityManager.activeNetwork ?:
return
false
val activeNetwork = connectivityManager.getNetworkCapabilities(network) ?:
return
false
return
when {
activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) ->
true
activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) ->
true
else
->
false
}
}
else
{
@Suppress
(
"DEPRECATION"
) val networkInfo =
connectivityManager.activeNetworkInfo ?:
return
false
@Suppress
(
"DEPRECATION"
)
return
networkInfo.isConnected
}
}
}