안녕하세요 푸민입니다.
저번 포스팅에 네트워크 상태 체크하는 것에 이어 이번에는 비행기모드와 로밍상태를 확인해 볼까요
먼저 비행기 모드 확인은
코드
int result;
try {
if (android.os.Build.VERSION.SDK_INT > 16){
result = Settings.Global.getInt(
context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON);
}else{
result = Settings.System.getInt(
context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON);
}
if(result != 0){
//여기가 비행기모드
}
else{
//비행기모드 아님
}
} catch (Exception e) {
//비행기모드 아님
}
설명
int 값의 결과를 받을 변수 result 를 정의합니다. 비행기 모드를 체크할 수 있는 방법은 안드로이드 버전별로 나뉩니다. 16버전 즉 젤리빈 초기 버전보다 높다면 Settings 객체내의 Global 객체를 통해서 값을 들고오구요. 낮다면 Settings 객체의 System 객체를 통해서 들고옵니다. 결과값이 0이 아니라면 비행기모드라는 것입니다. 그 외에는 비행기 모드가 아닙니다.
다음으로는 유심을 확인해볼까요?
코드
TelephonyManager telephonyManager =
(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
int simState = telephonyManager.getSimState();
if (simState == TelephonyManager.SIM_STATE_ABSENT || simState == TelephonyManager.SIM_STATE_UNKNOWN) {
//유심없음
} else {
//유심있음
}
설명
유심의 확인은 TelephonyManager 객체를 통해서 알수 있습니다. 해당 객체는 역시 Context 객체를 통해서 받아올 수 있습니다. TelephonyManager 객체의 getSimState() 를 통해 상태를 int 값으로 받습니다. 그리고 TelephonyManager 객체의 SIM_STATE_ABSENT 와 SIM_STATE_UNKNOWN 을 통해서 확인해 볼 수 있습니다.
마지막으로 로밍 확인은
코드
boolean isRoaming = telephonyManager.isNetworkRoaming();
설명
TelephonyManager 를 통해서 isNetworkRoaming() 을 통해서 boolean 값으로 알수 있습니다. 당연히 true 몇 로밍 상태인것이겠지요??
'Development > Android' 카테고리의 다른 글
[안드로이드] 이미지 로딩의 흐름 및 관련 라이브러리 정리 (0) | 2015.09.07 |
---|---|
[안드로이드] 데이터 저장. Preference 사용하기! (0) | 2015.09.06 |
[안드로이드] BroadcastReceiver를 이용한 Network 연결상태 확인! (0) | 2015.09.04 |
[안드로이드] Timer 사용하기! (0) | 2015.09.03 |
[안드로이드] Thread 사용하기 (0) | 2015.09.02 |
댓글