애플의 예제소스
http://developer.apple.com/iphone/library/samplecode/Reachability/Introduction/Intro.html
참고 주소
: http://theeye.pe.kr/entry/how-to-check-network-connection-on-iphone-sdk
사용방법
예제소스에서 Reachability.h와 Reachability.m을 찾아 내 프로젝트에 등록한다.
프로젝트에 SystemConfiguration.framework를 추가한다.
1)
#import <SystemConfiguration/SystemConfiguration.h>#import <netinet/in.h>
3)
#pragma mark -
- (IBAction)playMTN:(id)sender {
NSLog(@"Connection status : %@", [self connectedToNetwork] ? @"YES" : @"NO");
if ( [self connectedToNetwork] == NO) {
NSString *url = @"http://streaming address";
[[NSNotificationCenter defaultCenter] postNotificationName:@"playMovie"
object:self
userInfo:[NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:url, nil] forKeys:[NSArray arrayWithObjects:@"url", nil]]];
}else{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"알림" message:@"Wifi로 이용해주세요." delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
[alert release];
}
}
// 네트워크 의 wifi 와 3G를 구분함
- (BOOL) connectedToNetwork {
// 0.0.0.0 주소를 만든다.
struct sockaddr_in zeroAddress;
bzero(&zeroAddress, sizeof(zeroAddress));
zeroAddress.sin_len = sizeof(zeroAddress);
zeroAddress.sin_family = AF_INET;
// Reachability 플래그를 설정한다.
SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
SCNetworkReachabilityFlags flags;
BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
CFRelease(defaultRouteReachability);
if (!didRetrieveFlags)
{
printf("Error. Could not recover network reachability flags\n");
return 0;
}
// 플래그를 이용하여 각각의 네트워크 커넥션의 상태를 체크한다.
BOOL isReachable = flags & kSCNetworkFlagsReachable;
BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
BOOL nonWiFi = flags & kSCNetworkReachabilityFlagsTransientConnection;
// return ((isReachable && !needsConnection) || nonWiFi) ? YES : NO;
// 위와 같이 조건에 따라 리턴을 넘겨주면 된다return (nonWiFi) ? YES : NO;
}
'개발도구 > iOS - 아이폰 개발' 카테고리의 다른 글
[아이폰] userDefaults에 저장된 값을 NSMutableArray 와 NSDictionary 통해 수정 변경 삭제 하기 (0) | 2011.09.30 |
---|---|
[아이폰어플] Reachability로 네트워크 상태 감지 - 펌 (0) | 2011.09.30 |
[아이폰] UserDefaults, 노티피케이션, 델리게이트 (0) | 2011.09.30 |
[아이폰] NSMutableDictionary (0) | 2011.09.30 |
[아이폰] Xcode4 에서 Framework 추가 하기 (0) | 2011.09.30 |