안규 공부방

Android > 네트워크 연결 상태를 확인하는 ConnectivityManager

등록일 : 2017-07-06 17:31 조회수 : 93,489

어플 상에서 와이파이 또는 데이터 네트워크(3G,4G)가 연결되어 있는지를 확인해야 할 때가 있습니다.

이 때 사용하는 메소드가 바로 ConnectivityManager입니다.

그 전에 일단 먼전 AndroidManifest.xml에서 퍼미션을 정의해주어야 합니다..
 
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
	<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />


그 다음 자바 코드에서 체크를 하는 코드를 아래와 같이 작성합니다. 

어디서든 사용이 가능하지만 주로 onCreate() 내에 작성을 해서 어플이 시작하는 순간에 확인을 하도록 합니다.
 
	ConnectivityManager manager = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
	NetworkInfo mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
	NetworkInfo wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
 

	// wifi 또는 모바일 네트워크 어느 하나라도 연결이 되어있다면,
	if (wifi.isConnected() || mobile.isConnected()) {
		Log.i("연결됨" , "연결이 되었습니다.);
		setContentView(R.layout.activity_logo);
	} else {
		Log.i("연결 안 됨" , "연결이 다시 한번 확인해주세요);
	}
	


이런 식으로 사용해서 네트워크 연결을 설정하면 됩니다.!!

제가 사용하는 예제 입니다.

연결을 확인해야 할때 Fucntion 을 사용해서 체크 합니다.
 
	private Boolean isNetWork(){
		ConnectivityManager manager = (ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE);
		boolean isMobileAvailable = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isAvailable();
		boolean isMobileConnect = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
		boolean isWifiAvailable = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isAvailable();
		boolean isWifiConnect = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();

		if ((isWifiAvailable && isWifiConnect) || (isMobileAvailable && isMobileConnect)){
			return true;
		}else{
			return false;
		}
	}
	


isConnected 의 true/ false 값을 바탕으로 인터넷 연결 확인이 가능합니다.
 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.