Tip Android #006 – Verificare la connettività ad Internet


AndroidVersione SDK Android: 2.3.3 (10)

Buongiorno a tutti,

Lo sviluppo delle applicazioni mobile, negli ultimi anni, ha portato molti utenti a rivedere non solo il concetto di cellulare, ma anche il concetto delle funzionalità ad esso collegate.

Fondamentalmente possiamo dividere le applicazioni mobile in due macrocategorie:

  1. Applicazioni che non necessitano di una connessione ad internet
  2. Applicazioni che richiedono una connessione ad internet

Nella prima categoria ricadono principalmente i giochi e diverse utility, nella seconda ricadono i servizi di news, geolocalizzazione, realtà aumentata, social networking, ecc.

Appoggiandosi ad uno qualsiasi dei servizi di statistiche sull’uso delle applicazioni (tra cui anche Google si è aggiunta di recente)  emergono diversi dati interessanti, quello però che colpisce più di tutti è il numero di volte che un’applicazione viene adoperata sullo stesso dispositivo. Difatti i dati indicavano che circa il 90% delle applicazioni per Smartphone vengono avviate un’unica volta per poi essere abbandonate o rimosse.

Il dato indica diverse cose interessanti:

  1. L’utente medio tende a scaricare numerose applicazioni (soprattutto gratuite o a basso costo) anche solo per provarle
  2. Molte applicazioni non raggiungono un livello qualitativo minimo e vengono quindi abbandonate
  3. I contenuti di molte applicazioni sono poveri o visibili nell’ambito di una sola sessione e, quindi, una volta esaurito il loro scopo non sono più utili.

Nel restante 10% la maggior parte delle applicazioni aveva la peculiarità di avere dei contenuti dinamici e quindi in grado di arricchirsi, o quantomeno cambiare, nel tempo, invitando così l’utente a riavviarla più volte proprio per usufruire dei nuovi contenuti. Ovviamente se un’applicazione è fatta male i suoi contenuti non basteranno all’utente per riaprirla, ma se, appunto, raggiunge dei canoni di usabilità minimi, allora saranno proprio i contenuti che, probabilmente, porteranno alla riapertura dell’applicazione nel tempo.

Questa non è una regola aurea, ma sicuramente è un’indicazione piuttosto attendibile su come valutare la scrittura di un’applicazione.

Volendo quindi scrivere un’applicazione che si interfacci con il mondo di internet ci si trova ad affrontare diversi ostacoli il primo di tutti è, sicuramente, accertarsi che il dispositivo mobile su cui gira l’applicazione sia effettivamente connesso ad internet (o in base alla destinazione ad un servizio di rete specifico) e sia in grado di interagire con la rete.

La prima operazione da compiere è indicare che la nostra applicazione richiede i permessi di accesso ad internet e di controllo di stato dell’accesso alla rete. Questi permessi vanno indicati nel file AndroidManifest.xml adoperando le seguenti righe XML:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

 
Come indicato nel suggerimento precedente, è possibile interagire con il file, se si usa Eclipse, con un editor che semplifica l’operazione in oggetto. La sezione in oggetto è, ovviamente, Permissions. Qui, selezionano il pulsante Add ci verrà chiesto il tipo di permesso da adoperare, andrà selezionato Uses Permissions come da figura seguente:

Tipi di permessi

 

A questo punto non resta che selezionare i permessi, aggiungendoli uno alla volta, dall’elenco a discesa che compare sulla destra, alla fine il nostro elenco permessi dovrebbe somigliare al seguente:

Elenco permessi accesso ad internet

Abbiamo così predisposto l’applicazione ad effettuare l’accesso ad internet. Dobbiamo quindi scrivere il metodo che effettua il controllo ed indica lo stato della connessione:

public boolean isConnected() {
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnected()) {
        return true;
    }
    return false;
}

Il metodo restituisce true nel caso il dispositivo sia connesso ad internet, altrimenti restituisce false.

Arrivederci al prossimo suggerimento,

Roberto S.



Related Posts Plugin for WordPress, Blogger...

Questa voce è stata pubblicata in Android Tips e contrassegnata con , , , , . Contrassegna il permalink.
Wordpress Code Snippet by Allan Collins