2008-10-08 17 views
10

'da bir çıkıştan sonra geri döneceğini belirleme Apple'ın Reachability örneğini kendi projeme dahil ettim, böylece ağ bağlantım olup olmadığını biliyorum - ağ bağlantım yoksa göndermek ve isteklerini zahmet etmeyin. Durum bildirimi uygulamasına gitmeye karar verdim çünkü yeniden okunabilirliği arka planda güncellemenin daha kolay olduğu ve ağ bağlantısı yapmak istediğimde eşzamanlı bir isteği tekilleştirmek yerine geçerli sonuçların hemen mevcut olduğu görülüyordu.Bir EDGE bağlantısının iPhone

Sorun şu ki, bir EDGE ağında yanlış negatifler almaya başladım - telefonun bağlantısı var, ancak uygulama durumun böyle olmadığını düşünüyor. Anlayışım bir EDGE bağlantısı olduğunda bir bildirim almıyorsunuz, bu yüzden benim varsayımım bağlantı noktasını bir noktada kaybettim ve yeniden kazandım. Uygulamayı yeniden başlatmak genellikle ağ bağlantısını görmek için yeterlidir.

Bu optimal bir çözüm değildir, bu yüzden başka birinin bu problemle karşılaşıp karşılaşmadığını ve herhangi bir çözüm üzerinde herhangi bir fikri olup olmadığını merak ediyordum.

(Bunun 3G için de geçerli olup olmadığını bilmiyorum; ilk iPhone'u çalıştırıyorum).

cevap

14

Kullanılabilirlik bildirimleri, Wi-Fi'yi algılamak için benim için de güvenilir görünmüyordu. Bu yüzden ben sadece yoklamayı kullanıyorum. Her 5 saniyede bir kontrol yapmak hiç bir zararı yok gibi görünüyor.

- (void) checkReachability { 
    BOOL connected = ([[Reachability sharedReachability] localWiFiConnectionStatus] == ReachableViaWiFiNetwork); 

    // Do something... 

    [self performSelector:@selector(checkReachability) withObject:nil afterDelay:5.0]; 
} 
+0

sayesinde, bu nedenle muhtemelen benim gelecekteki öz biraz zaman kaydedilmiş :) –

+0

hey ben bu class.I Reachability.h eklendi nasıl kullanırım ve benim appDelegate benim yöntem koymak şimdi benim appDelegate içinde reachability.m dosya ve importedreachability.h dosya hataları olsun. –

+4

Geçerlilik kodu geçen yıl önemli ölçüde değişti. Yani, yukarıdaki kod artık çalışmayacak. –

1

Ağda güzel bir erişilebilirlik örneği var. Harika çalışıyor: http://servin.com/iphone/iPhone-Network-Status.html

Ama görüyorsun, kendi yolumu kullanmaya çalıştığımda, sadece bombalar.

kullanarak uygulamak çalıştı: Bugün Ulaşılabilirlik birleşmeyle planlıyordu

NSString *sCellNetwork;  
NSString *sNetworkReachable; 

if (flags & kSCNetworkFlagsReachable || flags & kSCNetworkReachabilityFlagsIsWWAN) 

{do it} 

else { 
    Network fail alert; 
} 
İlgili konular