연결 관리자
네트워크에 대한 정보를 구할때에는 연결 관리자의 다음 메서드를 호출합니다.
NetworkInfo[] getAllNetworkInfo() NetworkInfo getActiveNetworkInfo() NetworkInfo getNetworkInfo(ConnectivityManager.TYPE_MOBILE | ConnectivityManager.TYPE_WIFI)
네트워크의 상태나 특성에 대한 정보를 가지는 NetworkInfo 객체에서는 다음과 같은 메소드가 제공됩니다.
boolean isAvailable() boolean isConnected() boolean isRoaming() NetworkInfo.State getState()
예제 소스
import android.app.Activity; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.widget.EditText; public class ConMgr extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); EditText result = (EditText) findViewById(R.id.EditText01); String sResult = ""; //연결 관리자 ConnectivityManager 객체 가져오기 ConnectivityManager mgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); //모든 연결 방법에 대한 정보를 한꺼번에 구함 NetworkInfo[] ani = mgr.getAllNetworkInfo(); for(NetworkInfo n : ani) { sResult += n.toString() + "\n\n"; } //현재 액티브 상태인 연결 방법을 구함 NetworkInfo ni = mgr.getActiveNetworkInfo(); sResult += "Active : \n" + ni.toString() + "\n"; //특정 타입의 연결 방법에 대한 정보만 구함(2가지 연결 타입을 상수로 제공) //NetworkInfo ani = mgr.getNetworkInfo(mgr.TYPE_MOBILE | mgr.TYPE_WIFI); result.setText(sResult); } }
권한 설정
장비의 네트워크 상태를 조사하려면 매니페스트에 다음과 같이 퍼미션을 주어야합니다.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
에뮬레이터는 6가지의 연결 방법을 제공합니다. 장비가 인터넷에 연결되어 있으면 모바일 네트워크를 통해 인터넷에 연결 되지만. 액티브 연결이 없는 상태라면 적절하게 에러 처리를 해주어야 합니다.
'안드로이드 정복' 카테고리의 다른 글
스레드와 핸들러 (1) | 2010.08.13 |
---|---|
네트워크 - 비동기 다운로드 (0) | 2010.08.09 |
네트워크 - HTML 읽기 (1) | 2010.08.09 |
옵션 메뉴 만들기 (0) | 2010.08.02 |
타이머 이벤트 (Handler, CountDownTimer) (2) | 2010.08.02 |