如何从Carrier数据/ 3GS下载数据而不是WiFi?
问题描述:
在我的iphone应用程序中,用户可以设置他是否想通过wifi或3G/Carrier数据从互联网上下载数据。如何从Carrier数据/ 3GS下载数据而不是WiFi?
我们如何以编程方式做到这一点?
换句话说,我如何强迫iphone从运营商数据中获取数据,而不是从wifi?
任何建议家伙?
答
你不能强迫的iPhone如果手机连接到使用载波数据(3G /边缘)而不是无线网络无线上网。您可以使用SCNetworkReachabilityGetFlags函数来确定您是使用WiFi还是有载波数据连接。
您可以做的是,如果用户连接到WiFi,则会弹出一条消息,指出您的应用只适用于运营商数据,并要求用户关闭WiFi并重新启动应用。虽然这不会阻止沃达丰葡萄牙为他们的应用程序执行某些应用程序,但他们愚蠢地企图迫使您使用更多(昂贵的)载体数据。
答
如果iPhone连接到WiFi,则无法以编程方式强制其使用蜂窝网络进行下载。
答
为此,您需要检测手机的状态,并且您可以轻松识别天气数据在手机使用WiFi时不会传输。
-(void) viewWillAppear:(BOOL)animated
{
// check for internet connection
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];
internetReachable = [[Reachability reachabilityForInternetConnection] retain];
[internetReachable startNotifier];
// check if a pathway to a random host exists
hostReachable = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain];
[hostReachable startNotifier];
// now patiently wait for the notification
}
- (void) checkNetworkStatus:(NSNotification *)notice {
// called after network status changes
NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
switch (internetStatus){
case NotReachable:
{
NSLog(@"The internet is down.");
self.internetActive = NO;
break;
}
case ReachableViaWiFi:
{
NSLog(@"The internet is working via WIFI.");
self.internetActive = YES;
break;
}
case ReachableViaWWAN:
{
NSLog(@"The internet is working via WWAN.");
self.internetActive = YES;
break;
}
}
NetworkStatus hostStatus = [hostReachable currentReachabilityStatus];
switch (hostStatus)
{
case NotReachable:
{
NSLog(@"A gateway to the host server is down.");
self.hostActive = NO;
break;
}
case ReachableViaWiFi:
{
NSLog(@"A gateway to the host server is working via WIFI.");
self.hostActive = YES;
break;
}
case ReachableViaWWAN:
{
NSLog(@"A gateway to the host server is working via WWAN.");
self.hostActive = YES;
break;
}
}
}
+0
感谢您的回答。但这实际上不是问题。反正伟大的努力:) – Dilip 2012-01-05 12:57:17
你为什么要强迫别人使用载波数据,而不是无线网络? – mluisbrown 2012-01-05 11:12:14