10 aprile 2012

[Android] API per le etichette di Gmail

Nuova inclusione nelle API Gmail per dispositivi Android: con poche chiamate è possibile ora ottenere informazioni sulle email in arrivo categorizzate con una specifica etichetta.
Come funziona?


Una delle funzionalità notoriamente più sfruttate dagli utenti Gmail è quella dell’uso delle etichette, che rendono la propria casella email più ordinata e permettono di avere un’idea per così dire “semantica” della posta in entrata, magari ancor prima di leggerla.

Questa caratteristica, ovviamente inclusa anche nell’app ufficiale per i terminali Android, non era ancora disponibile per le applicazioni di terzi: grazie al lavoro dell’Android Team, ora sono disponibili nuove API che sopperiscono a questa mancanza.

Come prerequisito per sfruttare il nuovo pacchetto di classi messe a disposizione, dal momento che esse si appoggiano all’applicazione Gmail installata sul telefono/tablet, è necessario che l’applicazione stessa sia in versione uguale o superiore alla 2.3.6 per Android Froyo o Gingerbread (rispettivamente 2.2 e 2.3) oppure alla 4.0.5 su Honeycomb e Ice Cream Sandwich (rispettivamente 3 e 4).

Queste API permettono di lavorare sia con le etichette predefinite sia con etichette personalizzate presenti nella casella email.

Una volta accoppiata l’applicazione con un account Gmail funzionante, tramite AccountManager, viene messa a disposizione degli utenti la classe GmailContract che permette di ottenere un nuovo oggetto di tipo Cursor contenente tutte le informazioni per le etichette della casella di posta accoppiata.
I dati ottenibili tramite l’uso di GmailContract sono:
  • il nome dell'etichetta (presente come NAME e CANONICAL_NAME: è consigliato l'uso di CANONICAL_NAME dal momento che NAME può variare a seconda, ad esempio, della localizzazione del dispositivo in uso);
  • il MIME-type di un elemento al suo interno;
  • il numero delle conversazioni al suo interno;
  • i suoi colori di background e foreground;
  • il suo URI.
Può anche essere effettuata una query che restituisca direttamente la lista delle etichette tramite l’URL fornito dal metodo getLabelsUri interno alla classe GmailContract.Labels, che richiede come argomento il nome di un account Gmail valido.

Inoltre per quanto detto in precedenza sulle dipendenze richieste – cioè la versione corretta di Gmail – la classe GmailContract fornisce un metodo, canReadLabels, che restituisce vero o falso a seconda che la versione di Gmail installata supporti o meno le API per le etichette.

Da notare che è ovviamente necessario che l’applicazione da noi sviluppata abbia i permessi in lettura, ovvero in questo caso READ_CONTENT_PROVIDER e GET_ACCOUNTS.

Via | Android blog

Nessun commento:

Posta un commento