2012-01-05 5 views
2

私のiPhoneアプリでは、インターネットからのデータをwifiや3G/Carrierデータでダウンロードするかどうかを設定できます。キャリアデータ/ 3GSからデータをダウンロードするにはどうすればいいですか?

私たちはそれをプログラム的に行うことができますか?

つまり、Wi-Fiからではなくキャリアデータからデータを取得するにはどうすればよいですか?

ご意見はありますか?

+0

は、なぜあなたはキャリアのデータではなく無線LANを使用するために誰かを強制したいですか? – mluisbrown

答えて

2

あなたは携帯電話が接続されている場合代わりに無線LANのキャリアデータ(3G/EDGE)を使用するようにiPhoneを強制することはできませんWi-Fi。 SCNetworkReachabilityGetFlags機能を使用して、WiFi接続中かキャリアデータ接続中かを判断できます。

あなたができることは、ユーザーがWiFiに接続している場合は、アプリが通信事業者のデータのみで動作するというメッセージが表示され、Wi-Fiの電源を切ってアプリを再起動するよう求めるメッセージが表示されます。ボーダフォン・ポルトガルがあなたにもっと多くの(高価な)通信事業者のデータを使用させようとするばかげた試みで、数多くのアプリのためにそれをやってしまうのを止めませんでしたが、私はこれをお勧めしません。 。

3

iPhoneがWiFiに接続している場合、携帯電話ネットワークをダウンロードするようにプログラムで強制することはできません。

1

あなたは電話機の状態を検出する必要があり、電話機が無線LANを使用している場合、気象データが転送されないことを簡単に識別できます。

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

関連する問題