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

Andrea Busi | @bubidevs

Laureato in Ingegneria Informatica, ho fondato nel 2008 questo piccolo blog, in cui racconto le mie esperienze e i miei pensieri sul mondo dell'informatica. Nella vita mi occupo di sviluppo software, e nel tempo libero continuo a coltivare la mia passione per il mondo iOS.

ommenti a “DevTutorial # 24 – Controllare le connessioni disponibili

  1. Spinoricky ha detto:

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

  2. Fabry ha detto:

    grande tutorial complimenti! 🙂

  3. Davide ha detto:

    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.

  4. Andrea Busi ha detto:

    @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?

  5. Davide ha detto:

    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 .

  6. FulvioX ha detto:

    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

  7. Davide ha detto:

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

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

  8. Andrea Busi ha detto:

    @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 😉

  9. FulvioX ha detto:

    @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. 🙂

  10. Andrea Busi ha detto:

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

  11. FulvioX ha detto:

    @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

  12. FulvioX ha detto:

    @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

  13. Andrea ha detto:

    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

  14. Andrea Busi ha detto:

    @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 😉

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*