2011-08-19 30 views
7

Uygulanabilirlik'e Erişilebilirlik'i aktardım ve hepiniz için birkaç tane nasıl yapılır sorularım var. Önce başvurumu ve diğer araçları açıklamama izin verin.Erişilebilirlik Yardımı - WiFi Algılama

Bu uygulama AYNI ZAMANDA, ad-hoc ağında ve 3G üzerinden internette iki şeyle iletişim kurar. Not: Ad-hoc ağı internete bağlı DEĞİLDİR. Bu mükemmel çalışır - zaten uygulanmış ve harika bir şekilde test edilmiştir.

Bununla birlikte, iki şeyi saptamak için Erişilebilirliği uygulamak istiyorum.

1) Kullanıcı kablosuz ağa bağlı mı? (Daha da iyisi, eğer mümkünse, WXYZ'nin bir öneki ile kablosuz ağa bağlı olup olmadığını saptamaktır. Örneğin, listelenen iki ağ varsa, biri Linksys ve diğeri WXYZ-Testing_Platform olarak adlandırılırsa, WXYZ'ye bağlı olsun veya olmasın).

2) Kullanıcı internete 3G (veya 2G vb.) Üzerinden bağlanabilir ve sunucumuza erişebilir mi? peşin

Teşekkür

DÜZENLEME GELECEK lookers İÇİN CEVAP DAHİL EDİLECEK: For 1

), benim kod şöyle görünür:

.h 
#import <SystemConfiguration/CaptiveNetwork.h> //for checking wifi network prefix 

.m 
- (BOOL) connectedToWifi 
{ 

    CFArrayRef myArray = CNCopySupportedInterfaces(); 
    // Get the dictionary containing the captive network infomation 
    CFDictionaryRef captiveNtwrkDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0)); 

    NSLog(@"Information of the network we're connected to: %@", captiveNtwrkDict); 

    NSDictionary *dict = (__bridge NSDictionary*) captiveNtwrkDict; 
    NSString* ssid = [dict objectForKey:@"SSID"]; 

    if ([ssid rangeOfString:@"WXYZ"].location == NSNotFound || ssid == NULL) 
    { 
     return false; 
    } 
    else 
    { 
     return true; 
    } 
} 

Ve 2 kişilik) Erişilebilirlik aldım ve sunucuya bağlanmaya gittiğimde bu yöntemi kullanıyorum ... NOT:yerine sunucu bilgileri

-(void) checkIfCanReachServer 
{ 
UIAlertView *errorView; 
    Reachability *r = [Reachability reachabilityWithHostName:@"http://www.google.com"]; 
    NetworkStatus internetStatus = [r currentReachabilityStatus]; 


    if(internetStatus == NotReachable) { 
     errorView = [[UIAlertView alloc] 
        initWithTitle: @"Network Error" 
        message: @"Cannot connect to the server." 
        delegate: self 
        cancelButtonTitle: @"OK" otherButtonTitles: nil]; 
     [errorView show]; 
    } 
} 

cevap

7

Ulaşılabilirlik iletek cihaz başarıyla üzerinden veri paketlerini gönderebilir olmadığını bilmenizi sağlar. Yani 1) iPhone get SSID without private library'a başvurmalısınız. 2) için sadece bir internet bağlantısı olup olmadığını kontrol etmek için Reachability kullanacaksınız, daha sonra sunucunuza erişebildiğinizden emin olmak için NSURLConnection veya başka bir ağ kütüphanesi kullanmanız gerekecektir.

+0

Şimdi buna bakacağım, teşekkürler! – Baub