iPhoneテストネットワークリンク
2748 ワード
携帯電話がネットワークにリンクされているかどうか、またはリンクされているネットワークのタイプを知る必要がある場合があります..次のことができます.
(一)ネットワークをリンクするかどうか:
SystemConfigurationをインポートする必要がある.framework
#import#import
(二)ネットワークリンクのタイプ:
基本的な需要はすでに満足しています...
いいアドバイスがあったら返事してほしい...
(一)ネットワークをリンクするかどうか:
SystemConfigurationをインポートする必要がある.framework
#import
// internet , sockaddr_in sockaddr 。
struct sockaddr_in zeroAddress;
// zeroAddress
bzero(&zeroAddress, sizeof(zeroAddress));
zeroAddress.sin_len = sizeof(zeroAddress);
zeroAddress.sin_family = AF_INET; //
// ip
SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
//
SCNetworkReachabilityFlags flags;
//
BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
CFRelease(defaultRouteReachability);
if (!didRetrieveFlags) {
printf("Error. Count not recover network reachability flags
");
}
//
BOOL isReachable = flags & kSCNetworkFlagsReachable;
BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
NSString *result;
if ((isReachable && !needsConnection) ? YES : NO) {
result = @"Connection Successed!!!";
}else {
result = @"Connection Faild!!!";
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"TestConnection"
message:result
delegate:self
cancelButtonTitle:@"OK,I Know"
otherButtonTitles:nil];
[alert show];
(二)ネットワークリンクのタイプ:
NSString *connectionKind;
//
Reachability *hostReach = [Reachability reachabilityWithHostName:@"www.baidu.com"];
//
switch ([hostReach currentReachabilityStatus]) {
case NotReachable:
connectionKind = @" ";
break;
case ReachableViaWiFi:
connectionKind = @" WIFI";
break;
case ReachableViaWWAN:
connectionKind = @" WWAN(3G)";
break;
default:
break;
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@" "
message:connectionKind
delegate:self
cancelButtonTitle:@" , "
otherButtonTitles:nil];
[alert show];
基本的な需要はすでに満足しています...
いいアドバイスがあったら返事してほしい...