안드로이드 네트워크 연결상태 확인
2019. 8. 27. 00:32 ㆍ개발 이야기/android
오늘은 안드로이드의 네트워크 연결 상태를 확인하는 로직을 구현해 볼게요!
엄청나게 간단합니다!
일단 권한 설정부터!
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
와이파이 상태 확인 권한과 네트워크 상태 확인 권한이 필요해요!
그리고 사용방법에 따라 기획 방법에 따라
조금씩! 다르게 코딩을 할텐데요!
가장 기초적으로
연결 됐으면! true!
안됬으면! false!
static Boolean isConnected(Context context) {
ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
return ni != null && ni.isConnected();
}
자 이렇게 코드를 넣어주면 연결됐으면 true!
아닌 경우 false를 리턴해주겠죠!
인터넷 연결이 안 된 경우 토스트를 날려주거나 해도 되겠죠?
자. 그럼 이런 경우도 있죠
WIFI연결 시에만 다운로드하도록 설정
혹은 WIFI연결 시에만 다운로드됨
이런 식으로 기획된 아이들은 조금 다르게 로직을 짜야하는데요
static int isConnected(Context context) {
ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni != null && ni.isConnected()) {
if (ni.getType() == ConnectivityManager.TYPE_MOBILE) {
// 3g,4g 인 경우
return 1;
} else if (ni.getType() == ConnectivityManager.TYPE_WIFI) {
// WIFI인 경우
return 2;
}
}
// 연결 안됨
return 0;
}
Boolean 자료형은 참/거짓 두 가지밖에 표현이 안되어서
int 자료형으로 변경하고 세 가지 리턴으로 나누었습니다!
이제 이 것을 응용해서 리퀘스트 보내는 곳마다 확인을 해주면 좋을 거 같아요!
인터넷이 연결되지 않은 경우!
토스트로 간단하게
"인터넷 연결이 되어있지 않습니다"
같은 문구를 날려주면 좋을 것 같아요!
'개발 이야기 > android' 카테고리의 다른 글
#안드로이드 Third party 로그인 연동 3(파이어베이스 연동) (0) | 2019.09.15 |
---|---|
#안드로이드 Third party 로그인 연동 2(네이버 연동) (0) | 2019.09.12 |
#안드로이드 Third party 로그인 연동 1(카카오톡 로그인 연동) (1) | 2019.09.08 |
android ssl pinning(HPKP -HTTP Public Key Pinning) 적용 방법 (0) | 2019.08.20 |
안드로이드 FFMPEG 64bit 지원 (7) | 2019.08.01 |