안드로이드 인터넷 연결상태 확인 getNetworkCapabilities
2020. 7. 8. 18:16ㆍ공부 정리/안드로이드
인터넷 연결을 확인하는 getActiveNetworkInfo가 android10(API 29)에서 deprecated 되었습니다.
그래서 새로운 방법으로 getNetworkCapabilities을 이용한 방법을 정리하려 합니다.
출처에서 제공한 소스인데 정리가 잘 되어 있어 올립니다.
출처에서는 중간에 wifi값을 나누고 result값을 따로 나누었습니다.
public class NetworkStatus {
public static boolean isWIFIConnected(Context context){
boolean result = false;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (cm != null) {
NetworkCapabilities capabilities = cm.getNetworkCapabilities(cm.getActiveNetwork());
if (capabilities != null) {
if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
result = true;
} else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
result = false;
}
}
}
...
이렇게 되어 있는데 아래의 방식대로 하면 더 간결하게 볼 수 있습니다.
public class NetworkStatus {
public static boolean isConnected(Context context) {
boolean result = false;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (cm != null) {
NetworkCapabilities capabilities = cm.getNetworkCapabilities(cm.getActiveNetwork());
if (capabilities != null) {
result = capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)
|| capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR);
}
}
}
else {
if (cm != null) {
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null) {
// connected to the internet
result = (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI)
|| (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE);
}
}
}
return result;
}
}
getActiveNetworkInfo가 android10(API 29)에서 deprecated 되었다는 정보입니다.
https://developer.android.com/reference/android/net/NetworkInfo
'공부 정리 > 안드로이드' 카테고리의 다른 글
안드로이드 fragment replace (0) | 2020.07.12 |
---|---|
안드로이드 FragmentManager (0) | 2020.07.12 |
안드로이드 프래그먼트 - 2 (0) | 2020.07.12 |
안드로이드 프래그먼트 - 1 (0) | 2020.07.12 |
안드로이드 네트워크 보안 구성 - http연결 (0) | 2020.07.08 |