Skip to content

Instantly share code, notes, and snippets.

@philipplackner
Created September 5, 2020 22:40
Show Gist options
  • Select an option

  • Save philipplackner/6b1cb87badadb5ae1f2aeac749f7cba7 to your computer and use it in GitHub Desktop.

Select an option

Save philipplackner/6b1cb87badadb5ae1f2aeac749f7cba7 to your computer and use it in GitHub Desktop.

Revisions

  1. philipplackner created this gist Sep 5, 2020.
    22 changes: 22 additions & 0 deletions InternetChecker.kt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@
    import android.content.Context
    import android.net.ConnectivityManager
    import android.net.NetworkCapabilities
    import android.os.Build

    fun hasInternetConnection(context: Context): Boolean {
    val connectivityManager =
    context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    val activeNetwork = connectivityManager.activeNetwork ?: return false
    val capabilities = connectivityManager.getNetworkCapabilities(activeNetwork) ?: return false
    return when {
    capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true
    capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true
    capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true
    capabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN) -> true
    else -> false
    }
    } else {
    return connectivityManager.activeNetworkInfo?.isAvailable ?: false
    }
    }