네트워크 상태체크하기
enum class NETWORK_STATUS {
TYPE_WIFI,
TYPE_MOBILE,
TYPE_NOT_CONNECTED
}
class NetworkStatus {
companion object {
fun getConnectivityStatus(context: Context): NETWORK_STATUS {
val manager: ConnectivityManager? =
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
if (manager != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val networkCapabilities = manager.getNetworkCapabilities(manager.activeNetwork)
if (networkCapabilities != null) {
if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
return NETWORK_STATUS.TYPE_WIFI
} else if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
return NETWORK_STATUS.TYPE_MOBILE
}
}
} else {
val networkInfo = manager.activeNetworkInfo
if (networkInfo != null) {
val type = networkInfo.type
if(type == ConnectivityManager.TYPE_WIFI) {
return NETWORK_STATUS.TYPE_WIFI
} else if (type == ConnectivityManager.TYPE_MOBILE) {
return NETWORK_STATUS.TYPE_MOBILE
}
}
}
}
return NETWORK_STATUS.TYPE_NOT_CONNECTED
}
}
}