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















23 febbraio 2010 alle 10:24
Grazie mille… Oggi mi metterò al lavoro con questo tutorial!
24 febbraio 2010 alle 15:02
grande tutorial complimenti!
24 febbraio 2010 alle 22:31
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.
24 febbraio 2010 alle 23:20
@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?
24 febbraio 2010 alle 23:24
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 .
25 febbraio 2010 alle 12:50
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
25 febbraio 2010 alle 13:28
se commentate questa codice
wifiReach = [[Reachability reachabilityForLocalWiFi] retain];
[self check:wifiReach];
il programma funziona esattamente sia in wifi , dati cellulare/ senza connessione . Ciao.
25 febbraio 2010 alle 15:43
@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
26 febbraio 2010 alle 11:52
@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.
27 febbraio 2010 alle 11:53
@FulvioX: ok grazie mille, appena riesco provo a fare un test definitivo e poi nel caso correggo la guida
8 marzo 2010 alle 16:45
@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
8 marzo 2010 alle 17:38
@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
30 aprile 2010 alle 14:17
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
30 aprile 2010 alle 21:07
@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