본문 바로가기

Computer

iPhone 3G , Wi-Fi 검사하기

iPhone 에서 데이터 통신을 해야 할 경우 

3G 로 연결되어 있는지, 아니면 Wi-Fi 로 연결되어 있는지를 검사할 수 있는 API가 있습니다.

여러가지 라이브러리를 사용하여 직접 구현해도 되지만 애플 샘플코드에 좋은 API 가 Wrapping 되어 있어서 
이를 그냥 가져다가 사용해도 무리없이 구현이 가능합니다.

Reachabliity Class를 소개합니다.

이 샘플코드를 다운로드 받으시면 아래와 같은 파일들이 있습니다.





이 중에서 Reachability.h  와 Reachability.m 두 개를 그대로 복사합니다.

그리고 #include 하신후 아래와 같은 코드로 3G 로 연결되어 있는지, Wi-Fi 로 연결되어 있는지 확인 하실 수 있습니다.

 

Reachability *wanReach = [Reachability reachabilityForInternetConnection];

[wanReach startNotifer];

NetworkStatus status = [wanReach currentReachabilityStatus];

if (status == ReachableViaWWAN) {

[MyAlert title:@"등록하시겠습니까?" 

message:@"3G 상태인 경우 추가과금이\n  있습니다." target:self];

}else if(status == ReachableViaWiFi) {

[MyAlert message:@"등록하시겠습니까?" target:self];

}else {

[MyAlert message:@"네트워크 연결상태를 확인  이용해주세요."];

}


딱 봐도 감이 오지 않으신가요?

NetworkStatus 는

typedef enum {

NotReachable = 0,

ReachableViaWiFi,

ReachableViaWWAN

} NetworkStatus;


이렇게 선언되어 있는데 ReachableViaWWAN 이 3G, ReachableViaWiFi가 Wi-Fi 연결상태라는 것을 전달해 줍니다.


Reachability 에는


#define kReachabilityChangedNotification 

@"kNetworkReachabilityChangedNotification"


이러한 Notification도 정의되어 있습니다.

네트워크 상태가 바뀔때 노티를 받을 수 있겠네요.


노티피케이션에 대해서는 다음번에 정리해 보도록 하겠습니다.

'Computer' 카테고리의 다른 글

iPhone AES256 Encryption & Decryption  (1) 2010.06.01
iPhone Mobile Provisioning Profiles  (0) 2010.06.01
iPhone http client API (NSURLConnection) - 2  (2) 2010.05.31
iPhone http client API (NSURLConnection) - 1  (0) 2010.05.31
iPhone user Agent  (0) 2010.05.25