2012-01-05 4 views
2

내 iPhone 앱에서 사용자는 Wi-Fi 또는 3G/Carrier 데이터를 통해 인터넷에서 데이터를 다운로드할지 여부를 설정할 수 있습니다.wifi가 아닌 이동 통신사 데이터/3GS에서 데이터를 다운로드하는 방법은 무엇입니까?

프로그래밍 방식으로 어떻게 할 수 있습니까?

즉, iphone이 wifi가 아닌 이동 통신사 데이터에서 데이터를 가져 오도록 강요 할 수 있습니까?

의견이 있으십니까?

+0

왜 캐리어 데이터가 아닌 무선 랜을 사용하는 사람을 강제 할 수 있습니까? – mluisbrown

답변

2

당신은 전화가 연결된 경우 대신 와이파이의 캐리어 데이터 (3G/에지)를 사용하는 아이폰을 강요 할 수 와이파이. SCNetworkReachabilityGetFlags 기능을 사용하여 Wi-Fi에 연결되어 있는지 여부 또는 이동 통신사 데이터 연결 여부를 확인할 수 있습니다.

사용자가 Wi-Fi에 연결되어있는 경우 앱에 이동 통신사 데이터 만 사용할 수 있다는 메시지가 표시되면 Wi-Fi를 끄고 앱을 다시 시작하라는 메시지가 표시됩니다. Vodafone Portugal이 더 많은 (값 비싼) 이동 통신사 데이터를 사용하도록 바보 같은 시도로 수많은 앱을 사용하는 것을 막지는 못했지만 사용자의 지옥을 자극 할 것이기 때문에 나는 이것을 권장하지 않습니다. .

3

iPhone을 Wi-Fi에 연결하면 휴대 전화 네트워크를 사용하도록 프로그래밍 방식으로 강제로 다운로드 할 수 없습니다.

1

전화의 상태를 감지해야하며 휴대 전화에서 Wi-Fi를 사용할 때 날씨 데이터를 쉽게 확인할 수 있습니다.

-(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; 
      } 
     } 
    } 

more information visits this link.

+0

답변 해 주셔서 감사합니다. 그러나 이것은 실제로 질문이 아니 었습니다. 어쨌든 큰 노력 :) – Dilip