[Android SDK] [안드로이드/Android] 기기 네트워크 연결 상태 확인

 

앱 내에서 네트워크 연결을 확인해야 할 상황이 많이 있다.

예를 들어 실시간 방송 중 네트워크가 끊겼다면?, 채팅을 보낼 때 인터넷이 연결이 안 되는 상황이면? 등등

 

사용자가 네트워크에 연결이 됐는지 안 됐는지, 

연결이 됐다면 와이파이인지 셀룰러 통신(3G, LTE, 5G)을 사용하고 있는지를 알기 위한 코드이다.

셀룰러 통신 : 주파수 자원을 효율적으로 활용해 기지국을 공간적으로 확장하는 이동통신 

 

- 네트워크 연결 상태를 토스트 메세지로 띄우도록 한 결과 화면입니다.

 

 

 

- 메니페스트 파일

네트워크 상태 접근하기 위한 권한 추가

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

 

 

- 네트워크 연결 확인 java 코드

public void getConnectivityStatus(Context context) {
        // 네트워크 연결 상태 확인하기 위한 ConnectivityManager 객체 생성
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        if (cm != null) {

            // 기기가 마시멜로우 버전인 Andorid 6 이상인 경우
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
                // 활성화된 네트워크의 상태를 표현하는 객체
                NetworkCapabilities nc = cm.getNetworkCapabilities(cm.getActiveNetwork());

                if (nc != null) {

                    if (nc.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
                        Toast.makeText(context, "와이파이 연결됨", Toast.LENGTH_SHORT).show();
                    } else if (nc.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
                        Toast.makeText(context, "셀룰러 통신 사용", Toast.LENGTH_SHORT).show();
                    }
                } else {
                    Toast.makeText(context, "인터넷 연결 안됨", Toast.LENGTH_SHORT).show();
                }

            } else {

                // 기기 버전이 마시멜로우 버전보다 아래인 경우
                // getActiveNetworkInfo -> API level 29에 디플리케이트 됨
                NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
                if (activeNetwork != null) {
                    // 연결된 네트워크 확인
                    if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
                        Toast.makeText(context, "와이파이 연결됨", Toast.LENGTH_SHORT).show();
                    } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
                        Toast.makeText(context, "셀룰러 통신 사용", Toast.LENGTH_SHORT).show();
                    }
                } else {
                    Toast.makeText(context, "인터넷 연결 안됨", Toast.LENGTH_SHORT).show();
                }
            }
        }
    }

- 특이사항

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

네트워크 연결 여부 정보를 가져오기 위한 Networkinfo 클래스의 getActiveNetworkInfo()는 API 29에서 deprecated 됐습니다.

마시멜로우 버전 이상일 경우, 이하일 경우 네트워크 연결 확인하는 방법이 다름

 

- 참고 

https://m.blog.naver.com/PostView.nhn?blogId=jogilsang&logNo=221571963859&proxyReferer=https:%2F%2Fwww.google.com%2F

https://developer.android.com/training/monitoring-device-state/connectivity-status-type

http://www.ktword.co.kr/abbr_view.php?m_temp1=472

 

[출처] https://develop-writing.tistory.com/1

 

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
33 [Android Studio] Google Play Console - 앱 API 수준 업데이트하기 (앱 업데이트 출시, 앱 API 수준 이상 타겟팅 방법, API 31 To 33) file 졸리운_곰 2024.08.28 203
32 [android studio] 안드로이드 앱 배포, APK와 AAB file 졸리운_곰 2024.05.03 208
31 [android studio] 안드로이드 스튜디오 패키지명 변경 방법 file 졸리운_곰 2024.01.28 134
30 [android studio] 안드로이드 앱 내부 배포 시 Play프로텍트에 인증받고 배포하기 file 졸리운_곰 2023.03.23 228
29 [android studio] [Java][Android] 안드로이드 다국어 지원 file 졸리운_곰 2023.03.21 137
28 [android studio] [안드로이드 스튜디오] 다국어 지원 strings.xml 파일 생성 방법 file 졸리운_곰 2023.03.21 220
27 [android studio] 구글 플레이 스토어 등록 어떻게? 2편 - 키스토어 생성과 릴리즈 빌드 하기 file 졸리운_곰 2023.03.21 148
26 [android studio] 구글 플레이 스토어 등록 어떻게? 1편 - 준비해야 할 것들 졸리운_곰 2023.03.21 136
25 [android studio] 웹페이지를 apk 앱으로 | 쉽게 따라하는 웹앱 만들기 file 졸리운_곰 2023.03.21 228
24 [android studio] 안드로이드 아이콘이 2개 생성될 때 졸리운_곰 2023.03.21 172
23 [android studio] Convert Any Website to Android App using Android Studio file 졸리운_곰 2023.03.18 203
22 [android studio] How to Convert Any Website to Android App in Android Studio? file 졸리운_곰 2023.03.18 144
21 [android studio] 에러 해결: android gradle plugin requires java 11 to run. you are currently using java 1.8. file 졸리운_곰 2022.11.17 142
20 [android sdk] 안드로이드에서 JWT 사용하기 졸리운_곰 2022.07.15 176
19 [Android Studio] Android Native App 에서 mysql , php 연결 : PHP MySQL REST API for Android file 졸리운_곰 2021.12.02 267
18 Android PHP MySQL 예제 - 데이터베이스에서 데이터를 JSON 형식으로 가져오기 file 졸리운_곰 2021.07.24 341
17 Android PHP MySQL 예제 - 데이터베이스 질의(query) 결과 출력하기 file 졸리운_곰 2021.07.24 681
16 [android] 안드로이드에서 mysql 데이터베이스 입력, 접속 / Android PHP MySQL 예제 - 데이터베이스에 데이터 입력하기 file 졸리운_곰 2021.07.24 236
15 Android 에서 Opencv 설치하고 간단한 예제 실행해보기!! file 졸리운_곰 2020.10.31 511
14 [Android] Fragment 를 이용한 탭 만들기 file 졸리운_곰 2020.09.19 219
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED