Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- designPattern
- 프로토타입 패턴
- 코틀린
- 싱글톤
- 빌터패턴
- El
- F
- Design Pattern
- factory method
- 디자인패턴 #
- Kotlin
- a
- ㅋㅁ
- 팩토리 메소드
- Observer Pattern
- 디자인패턴
- PrototypePattern
- 함수형프로그래밍
- Abstract Factory
- 옵저버 패턴
- ㅓ
- Functional Programming
- r
- Singleton
- 추상팩토리패턴
- 추상 팩토리
- builderPattern
Archives
- Today
- Total
오늘도 더 나은 코드를 작성하였습니까?
android 기기가 반드시 인터넷에 연결되어 있는지 확인 본문
developer.android.com/training/monitoring-device-state/connectivity-status-type?hl=ko
안드로이드 마쉬멜로우 이전 버전(api 23)에서 사용하던, activeNetworkInfo가 디프리케이트 되었다
마쉬멜로우 이후 및 이전 모두 지원하는 코드
private 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 {
// 마쉬멜로우 이전
val nwInfo = connectivityManager.activeNetworkInfo ?: return false
return nwInfo.isConnected
}
return result
}