Domanda

Ho incorporato l'esempio di raggiungibilità di Apple nel mio progetto, quindi so se ho una connessione di rete - se non ho una connessione di rete, non mi preoccupo di inviare e richiedere. Ho deciso di seguire l'implementazione della notifica dello stato perché mi è sembrato più facile avere la raggiungibilità aggiornata in background e avere i risultati attuali disponibili immediatamente invece di dare il via a una richiesta sincrona ogni volta che voglio fare una connessione di rete.

Il mio problema è che comincio a ricevere falsi negativi su una rete EDGE: il telefono ha connettività, ma l'app pensa che non sia così. La mia comprensione è che non ricevi una notifica quando una connessione EDGE, quindi la mia ipotesi è che a un certo punto ho perso e riguadagnato la connessione. Il riavvio dell'app è in genere sufficiente per visualizzare la connessione di rete.

Questa non è una soluzione ottimale, quindi mi chiedevo se qualcun altro avesse riscontrato questo problema e avesse qualche idea su una soluzione.

(Non so se questo si applica anche al 3G; sto usando un iPhone di prima generazione).

È stato utile?

Soluzione

Le notifiche di raggiungibilità non sembravano essere affidabili nemmeno per me, per il rilevamento del Wi-Fi. Quindi uso semplicemente il polling. Il controllo ogni 5 secondi sembra non danneggiare.

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

    // Do something...

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

Altri suggerimenti

C'è un buon esempio di raggiungibilità in rete. funziona meravigliosamente bene: http://servin.com/iphone/iPhone-Network-Status.html

Ma vedi, quando provo ad usarlo a modo mio, si scatena una bomba.

Ho provato a implementarlo usando:

NSString *sCellNetwork;     
 NSString *sNetworkReachable;  

if (flags & kSCNetworkFlagsReachable || flags & kSCNetworkReachabilityFlagsIsWWAN)

{do it} 

 else {
   Network fail alert; 
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top