はじめに
今回は端末がネットワークに繋がっているかどうかで処理を分けたい時に使える確認部分の実装を紹介していきます
本文
// メンバで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
}
}
最後に
基本的には接続エラーの表示を出せばいいとは思いますが、何か特別な処理をしたいときなどに使えると思うのでどなたかのお役に立てれたら幸いです