2011-10-03 51 views
2

長時間讀者,第一次提問。一旦iPhone 4丟失,多長時間一次搜索數據服務?

我正在編寫一個iPhone應用程序,需要處理手機進出數據的覆蓋面,並帶有一些優雅。我可以通過通知設置Reachability,以瞭解它何時會丟失或返回,但是對我來說,瞭解無線電頻率正在尋找信號的頻率會有所幫助 - 並且此速率會隨着時間的推移而減慢嗎?另外,有沒有什麼我可以通過編程(比如ping服務器,當我知道我沒有覆蓋範圍時)來加速它?

電池壽命對我來說並不是真正的重要問題,我也不會通過iTunes進行部署。

+0

不知道關於檢查衰減,但它會很容易找到 - 設置得到的通知/丟失覆蓋範圍並檢查發送通知的時間戳。關於手動檢查 - Apple的Reachability示例具有檢查主機,IP地址和其他網絡實體訪問權限所需的所有方法。 – Eimantas

回答

1

你想要什麼是可能的。首先得到Reachability code from Apple。那麼你需要寫一個checkNetworkStatus實現。這是其中的通知來 -

#import "Reachability.h" 

- (void)checkNetworkStatus:(NSNotification *)notice 
{ 
    // called after network status changes 
    NetworkStatus internetStatus = [internetReachable currentReachabilityStatus]; 

    switch(internetStatus) 
    { 
     case NotReachable: 
     { 
      self.internetActive = NO; 
      break; 
     } 
     case ReachableViaWiFi: 
     { 
      self.internetActive = YES; 
      break; 
     } 
     case ReachableViaWWAN: 
     { 
      self.internetActive = YES; 
      break; 
     } 
    } 

    NetworkStatus hostStatus = [hostReachable currentReachabilityStatus]; 
    switch (hostStatus) 
    { 
     case NotReachable: 
     { 
      self.hostActive = NO; 
      break; 
     } 
     case ReachableViaWiFi: 
     { 
      self.hostActive = YES; 
      break; 
     } 
     case ReachableViaWWAN: 
     { 
      self.hostActive = YES; 
      break; 
     } 
    } 
    return; 
} 

現在你需要開始您的通知 -

-(void)viewWillAppear:(BOOL)animated 
{ 
    //NSLog(@"View Will Appeared!!"); 

    // 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.google.com"] retain]; 
    [hostReachable startNotifier]; 

    // now patiently wait for the notification 
    return; 
} 
+1

+!雅打我吧) – chown

+0

是的,謝謝你,但這並沒有真正回答我的問題中較難的部分。你知道蘋果公司是否已經發布了(或者其他人已經完成了工作,弄清楚)操作系統在進入和退出服務時如何處理收音機?我假設他們沒有連續掃描信號由於電池壽命。必須有一種算法來確定它們的外觀和睡眠時間。再次感謝! – Alex

+0

不是我所知道的。我建議你將「進入和退出服務時操作系統處理收音機的方式」部分留給蘋果公司。嘗試使用你得到的通知,看看這是否符合你的目的... –

相關問題