DevTutorial # 24 – Controllare le connessioni disponibili

Eccoci con un nuovo tutorial dedicato alla programmazione per iPhone SDK.

In questo appuntamento vedremo come controllare le connessioni disponibili nel nostro dispositivo, operazione molto importante in tutte le applicazioni che devono accedere, per qualsiasi motivo, alla rete.

Vedremo come utilizzare la classe “Reachability” (messa a disposizione da Apple), per testare se è attiva una connessione WiFi o 3G. Piccola nota, in questo tutorial parleremo sempre di connessione 3G, sarebbe più corretto parlare di connessione dati (potrebbe essere anche una semplice connessione EDGE), ma per semplicità utilizzeremo sempre la dicitura 3G.

Buon tutorial a tutti allora!

Leggi il tutorial completo su devAPP

Ingegnere informatico e sviluppatore freelance, mi occupo da anni di sviluppo per iOS (ma non solo). Dal 2008 scrivo su questo piccolo blog (con qualche lunga pausa), in cui parlo di programmazione e di qualsiasi altra cosa che mi diverta.

14 comments On DevTutorial # 24 – Controllare le connessioni disponibili

  • Grazie mille… Oggi mi metterò al lavoro con questo tutorial!

  • grande tutorial complimenti! 🙂

  • provando il tutorial ho notato che non riesce a capire se l’iphone è connesso ad uan reti cellulare infatti dice 3G = no . Sai per caso il motivo ?? Grazie.

  • @Davide: davvero? io non ho iPhone e non ho provato, ma un amico ha provato e mi aveva detto che gli funzionava correttamente.. che iPhone e versione di firmware hai?

  • iphone 3g e firmware 3.1.3.
    in pratica riesce a capire quando è in wifi e quando è senza linea , ma quando usa una connessione dati (vodafone) mi dice che non ‘è presente nessuna connessione .

  • Ciao Andrea.
    Grazie mille come al solito.
    So che esiste un metodo per fare pressoché la stessa cosa, ma in maniera molto più semplice, verificando l’accesso ad un sito, riempiendo una stringa con il contenuto ricevuto dal sito e controllando se risulta NULL. Ora mi chiedo quali dei due metodi sia più corretto usare ed i vari pro e contro. Ovviamente la domanda è aperta a tutti. Questo è made in Apple e quindi darebbe una certa sicurezza, anche se sembra avere qualche problema col il collegamento via telefono, ma l’altro è veramente semplice ed efficace. Unico neo potrebbe essere il down del sito di riferimento, i.e. google.
    Un grazie anticipato a chi vorrà commentare. Ciao

  • se commentate questa codice
    wifiReach = [[Reachability reachabilityForLocalWiFi] retain];
    [self check:wifiReach];

    il programma funziona esattamente sia in wifi , dati cellulare/ senza connessione . Ciao.

  • @FulvioX: quello che ho proposto nel tutorial mi sembra il più efficace, in quanto non si basa su nessun sito web (che come hai ben detto potrebbe essere down al momento del test della connessione).
    Ovviamente possono anche essere equivalenti come metodi, quindi sta a te scegliere quale usare 😉

    @Davide: wow, grazie.. vediamo se altri riscontrano il tuo stesso problema, in tal caso correggerò il tutorial 😉

  • @Andrea Busi: OK. Era più comoda l’altra soluzione ma questa in effetti sempre più corretta. Sto provando ad utilizzarla e per ora confermo il problema segnalato da Davide. Il suo suggerimento comunque risolve il problema. Grazie ad entrambi. Ciao

    PS: Piccola divagazione … Per chi è in zona … domani parte il club sviluppatori iPhone a Milano. Magari puoi segnalarlo sul sito avvisando anche DevApp. Magari ci si vede. 🙂

  • @FulvioX: ok grazie mille, appena riesco provo a fare un test definitivo e poi nel caso correggo la guida 😉

  • @Andrea Busi: Il problema riscontrato da Davide è dovuto al fatto che nella classe Apple i flags letti non variano nel caso di 3g on + wifi on e 3g off + wifi on. In pratica quando il wifi è on il 3G risulta sempre spento, la ReachableViaWWAN non viene utilizzata e non è quindi possibile verificare lo stato del 3g. 🙁 Sperando di non aver detto stupidate lascio a voi esperti il commento ad un tale comportamento. Ciao

  • @Andrea Busi: Aggiungo … Penso la questione stia in questi termini … la ReachableViaWWAN non identifica la connessione telefonica ma indistintamente questa o quella WIFI. Da qui l’impossibilità di capire se stiamo utilizzando il 3G o il WIFI. Differentemente la ReachableViaWiFi segnala solo lo stato del WIFI. Spero di essere contraddetto ma mi sa che le cose stanno così. Ciao

  • ciao andrea,

    complimenti per il lavoro pero’ una critica te la devo fare, perché mi ha incoraggiato a considerare di poca attendibilità il tutorial.
    Chi legge questo tutorial si aspetta che il frutto dell’insegnamento che l’autore si propone di dare provenga una comprovata esperienza su quello che stai dicendo. E’ quindi inaccettabile, secondo il mio parere, pubblicare e dare per buono qualcosa che manco si è provato o che ha provato un amico.

    @Davide: davvero? io non ho iPhone e non ho provato, ma un amico ha provato e mi aveva detto che gli funzionava correttamente.. che iPhone e versione di firmware hai?

    spero che questa critica venga letta e compresa nel verso giusto e che sia spunto per un miglioramento.

    un saluto.
    Andrea

  • @Andrea: ciao, le critiche (costruttive) sono sempre ben accette..

    io ho pubblicato questo tutorial dopo averlo fatto testare ad un paio di persone, che mi avevano confermato che funzionava correttamente..
    la classe, inoltre, non è presa a caso, ma è stata fatta da Apple stessa, quindi si potrebbe anche pubblicare ad occhi chiusi 😉

    ovviamente tutti i tutorial li ho sempre testati, così come tutte le guide 😉

Leave a Reply to Andrea Busi Cancel Reply

Your email address will not be published.

Site Footer