티스토리 뷰

스마트폰으로 이용할 수 있는 네트웍 접속 방법은 모바일네트웍, wifi, 블루투스, wibro 등이 있다. 자신의 모바일에서 이런 네트웍 상태를 알아보기위해서는 시스템서비스에서 ConnectivityManager(연결관리자)객체를 받아서 알아볼 수 있다.


ConnectivityManager에서 모든 연결 방법에대한 정보를 한번에 구할 수 있고, 현재 액티브  상태인 연결 방법이나 특정타입의 연결 방법에 대한 정보만을 구할 수도 있다.


ConnectivityManager의 중요 메소드


NetworkInfo[] getAllNetworkInfo()

NetworkInfo getActiveNetworkInfo()

NetworkInfo getNetworkInfo(int networkType)



위의 메소드들은 네트웟의 상태, 특성 정보를 NetworkInfo객체를 리턴해준다.


예제)

퍼미션 추가 : <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>


모든 상태 확인

 public class MainActivity extends Activity {
	TextView network;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		network = (TextView) findViewById(R.id.network_state);

		String sResult = " ";
		ConnectivityManager mgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
		NetworkInfo[] nif = mgr.getAllNetworkInfo();
		
		for (NetworkInfo n : nif) {
			sResult += (n.toString() + "\n\n");
		}
		network.setText(sResult);
	}
}



활성중인 연결확인


그렇다면, 실제로 사용될때, 연결상태를 true/ false로 만 확인하고싶다면?

얻어온 NetworkInfo에서 isConnected()로 확인할 수있다. 

boolean connected = false;
for (NetworkInfo n : nif) {
	if(n.isConnected()){
		connected = true;
		break;
	}
}



wife만을 확인하기 (개별 적으로도 확인이 가능하다.) 

NetworkInfo wifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);


'Language > Android' 카테고리의 다른 글

[Android] 액티비티 생애주기  (0) 2013.04.19
[Android] Thread  (0) 2013.04.17
[Android] 해상도구하기  (0) 2013.04.16
[Android] 로딩화면구현하기  (0) 2013.04.16
[Android] SharedPreference란  (2) 2013.04.16
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday