0
0

android端末のネットワーク接続を確認する

Posted at

はじめに

今回は端末がネットワークに繋がっているかどうかで処理を分けたい時に使える確認部分の実装を紹介していきます

本文

// メンバでContextを取得
val context: Context = LocalContext.current
// 可読性を上げるために関数化
private fun isNetworkAvailable(context: Context): Boolean {
    val connectivityManager = context.getSystemService(CONNECTIVITY_SERVICE) as? ConnectivityManager
    connectivityManager?.let {
        val nw = it.activeNetwork ?: return false
        val actNw = it.getNetworkCapabilities(nw) ?: return false
        return when {
            actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true
            actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true
            actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true
            actNw.hasTransport(NetworkCapabilities.TRANSPORT_BLUETOOTH) -> true
            else -> false
        }
    } ?: run {
        return false
    }
}

最後に

基本的には接続エラーの表示を出せばいいとは思いますが、何か特別な処理をしたいときなどに使えると思うのでどなたかのお役に立てれたら幸いです

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0