我想确定iPhone上是否有互联网连接.对于应用程序来说无论是wifi还是EDGE或其他什么都无关紧要.
使用SeismicXML示例中的代码似乎不起作用,Apple的Reachability示例代码似乎对应用程序来说太过分了......
有没有一种快速简便的方法来确定iPhone上的网络可用性?
谢谢,本
遵循以下3个简单步骤 -
第1步:在项目中包含"SystemConfiguration.framework"框架
第2步:从可达性示例中包含Apple的Reachability.h和Reachability.m
第3步:现在将此代码添加到.m中的任何位置.
Reachability* wifiReach = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain]; NetworkStatus netStatus = [wifiReach currentReachabilityStatus]; switch (netStatus) { case NotReachable: { NSLog(@"Access Not Available"); break; } case ReachableViaWWAN: { NSLog(@"Reachable WWAN"); break; } case ReachableViaWiFi: { NSLog(@"Reachable WiFi"); break; } }
我从他们的Reachability示例中加入了Apple的Reachability.h和.m,再加上上面提到的SystemConfiguration框架,然后将以下代码添加到我的应用程序中,这比上面的答案有两个优点 - 它为您提供了更多信息,并且您获得了异步网络状态更改通知.
在您的app delegate或类似代码中,在启动时添加:
[self startReachability];
然后添加此方法,在网络更改时调用该方法:
#pragma mark Reachability changed - (void)reachabilityChanged:(NSNotification*)aNote { self.remoteHostStatus = [[Reachability sharedReachability] remoteHostStatus]; switch (self.remoteHostStatus) { case NotReachable: debugForComponent(kDebugMaskApp,@"Status changed - host not reachable"); break; case ReachableViaCarrierDataNetwork: debugForComponent(kDebugMaskApp,@"Status changed - host reachable via carrier"); break; case ReachableViaWiFiNetwork: debugForComponent(kDebugMaskApp,@"Status changed - host reachable via wifi"); break; default: debugForComponent(kDebugMaskApp,@"Status changed - some new network status"); break; } }
一旦尝试复制SystemConfiguration.framework,我在破解XCode之后想出来......这是对任何可能感兴趣的人的解决方案......
将SystemConfiguration.framework添加到项目中,执行#import
SCNetworkReachabilityFlags flags; BOOL receivedFlags; SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(CFAllocatorGetDefault(), [@"google.com" UTF8String]); receivedFlags = SCNetworkReachabilityGetFlags(reachability, &flags); CFRelease(reachability); if (!receivedFlags || (flags == 0) ) { // internet not available } else { // internet available }
嗯,希望这对任何人都有帮助...似乎是让应用被拒绝的常见方式......
链接到可达性示例;
http://developer.apple.com/iphone/library/samplecode/Reachability/index.html