Skip to content

Instantly share code, notes, and snippets.

@amoozeshbebin
Created September 6, 2023 09:52
Show Gist options
  • Save amoozeshbebin/a9ea9bd9d79d8493229d82074a371f99 to your computer and use it in GitHub Desktop.
Save amoozeshbebin/a9ea9bd9d79d8493229d82074a371f99 to your computer and use it in GitHub Desktop.
Check Internet Connection/Permission koltin/android
MainActivity.kt:
package com.example.internetpermission
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.util.Log
class MainActivity {
companion object {
fun isInternetAvailable(context: Context): Boolean {
var result = false
val connectivityManager =
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val networkCapabilities = connectivityManager.activeNetwork ?: return false
val actNw =
connectivityManager.getNetworkCapabilities(networkCapabilities) ?: return false
result = when {
actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true
actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true
actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true
else -> false
}
} else {
connectivityManager.run {
connectivityManager.activeNetworkInfo?.run {
result = when (type) {
ConnectivityManager.TYPE_WIFI -> true
ConnectivityManager.TYPE_MOBILE -> true
ConnectivityManager.TYPE_ETHERNET -> true
else -> false
}
}
}
}
return result
}
}
}
___________________________________________________
use:
if(MainActivity.isInternetAvailable(this,)){
Toast.makeText(this,"Internet Connected ",Toast.LENGTH_LONG).show()
}else{
Toast.makeText(this,"Internet Not Connected ",Toast.LENGTH_LONG).show()
}
_____________________________________________________
Android Manifest:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment