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];
}
}
Vedrò questo ora, grazie! – Baub