2011-08-19 10 views
7

Ho importato Raggiungibilità nella mia applicazione e ho un paio di domande pratiche per tutti voi. Lasciatemi spiegare prima la mia applicazione e altri strumenti.Guida Raggiungibilità - Rilevamento Wi-Fi

Questa applicazione comunica con due elementi ALLO STESSO TEMPO, una rete ad-hoc e Internet tramite 3G. Nota: la rete ad-hoc NON è collegata a Internet. Funziona perfettamente - è già stato implementato e testato meravigliosamente.

Con ciò detto, voglio implementare Raggiungibilità per rilevare due cose.

1) L'utente è connesso a una rete ad-hoc wifi? (Ancora meglio, se possibile, è quello di rilevare se è connesso alla rete ad-hoc wifi con un prefisso WXYZ. Ad esempio, se ci sono due reti elencate, una chiamata Linksys e l'altra chiamata WXYZ-Testing_Platform, sa indipendentemente dal fatto che sia connesso o meno a WXYZ).

2) L'utente può connettersi a Internet tramite 3G (o 2G, ecc.) E accedere al nostro server?

Grazie in anticipo

EDIT per includere RISPOSTA PER FUTURI Lookers:

Per 1), il mio codice è simile al seguente:

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

e per 2) , Ho importato Reachability e ho utilizzato questo metodo ogni volta che vado a connettermi al server ... NOTA: sostituire http://www.google.com con le informazioni del server

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

risposta

7

raggiungibilità solo ti consente di sapere se il dispositivo può inviare pacchetti di dati fuori successo. Quindi per per 1) si dovrebbe fare riferimento a iPhone get SSID without private library. Per 2) si utilizzerà Raggiungibilità solo per verificare la presenza di una connessione Internet, quindi sarà necessario utilizzare NSURLConnection o altra libreria di rete per assicurarsi di poter raggiungere il server.

+0

Vedrò questo ora, grazie! – Baub

Problemi correlati