domenica 15 febbraio 2009

Integrazione con applicazioni BlackBerry - 4° parte

Siamo finalmente giunti (qualcuno potrebbe esclamare: era ora!) all'ultima puntata relativa alle problematiche di integrazione con le applicazioni standard del BlackBerry. Dopo aver esaminato il meccanismo per elaborare in modo personalizzato gli allegati presenti nelle email, vediamo la tecnica complementare, cioè come inviare messaggi di posta elettronica con file allegati.
La sequenza di operazioni può essere riassunta nei seguenti punti:
  • Scelta della cartella in cui memorizzare il messaggio e creazione del messaggio
  • Creazione della lista di destinatari a cui inviare il messaggio
  • Caricamento del mittente
  • Impostazione del soggetto
  • Creazione del contenuto, che conterrà la parte con il corpo del messaggio e quella con l'allegato
  • Invio del messaggio
Tutte le classi utilizzate si trovano nel package net.rim.blackberry.api.mail e quindi fanno parte delle estensioni alla libreria standard J2ME fornite da RIM. Vediamo in dettaglio il codice necessario ad implementare i punti appana elencati.

Scelta della cartella in cui memorizzare il messaggio e creazione del messaggio
Store store = Session.getDefaultInstance().getStore();
Folder[] folders = store.list(Folder.SENT);
Folder sentfolder = folders[0];
Message msg = new Message(sentfolder);

Creazione della lista di destinatari a cui inviare il messaggio
Address toList[] = new Address[1];
toList[0]= new Address("rossi@email.it", "Mario Rossi");
msg.addRecipients(Message.RecipientType.TO, toList);

Caricamento del mittente
Address from = new Address("bianchi@email.it", "Paolo Bianchi");
msg.setFrom(from);

Impostazione del soggetto
msg.setSubject("Soggetto dal mail");

Creazione del contenuto, che conterrà la parte con il corpo del messaggio e quella con l'allegato
Multipart multipart = new Multipart();
TextBodyPart body = new TextBodyPart(multipart, messaggio);
SupportedAttachmentPart attach = new SupportedAttachmentPart(multipart, MIME_TYPE, FILE_NAME, allegato.getBytes());
multipart.addBodyPart(body);
multipart.addBodyPart(attach);
msg.setContent(multipart);

Invio del messaggio
Transport.send(msg);

Il penultimo punto è il più importante e il più delicato. Nel codice si utilizzano due variabili di tipo String, messaggio e allegato, che rappresentano rispettivamente il testo del messaggio e quello dell'allegato, da cui si estraggono i byte da inviare. Sono presenti anche due costanti, MIME_TYPE e FILE_NAME, che vengono utilizzate dalla libreria di RIM per impostare i dati fondamentali dell'allegato. Nel caso di Copilota, tali costanti valgono:
MIME_TYPE = "application/x-rimdevice-SegnalazioneCopilota";
FILE_NAME = "x-rimdevice-SegnalazioneCopilota-ABC.cpl";
Il nome del file ripete parte del tipo MIME, in quanto l'infrastruttura di mail del BlackBerry elimina la seconda parte del MIME Type (quella dopo lo /) e la sostituisce con il nome del file. In questo modo il tipo MIME completo risulta:
application/x-rimdevice-SegnalazioneCopilota-ABC.cpl
Sfruttando parti di questa stringa è possibile associare un handler applicativo ad un particolare tipo di allegato, come è stato fatto proprio in Copilota, dove si controlla la presenza della stringa
x-rimdevice-SegnalazioneCopilota
all'interno del tipo MIME dell'allegato.

Vi saluto confermandovi che sto portando avanti lo sviluppo di una nuova applicazione per BlackBerry: sono già a buon punto e spero di finire tutto entro febbraio. Contemporaneamente sto sperimentando con un BlackBerry Bold e con il sistema server di RIM (la versione Professional del BES), in modo da toccare con mano le potenzialità di questa infrastruttura, in particolare per quanto riguarda la gestione dei criteri IT. Spero di raccogliere materiale sufficiente per scrivere qualche post interessante.

Nessun commento:

Ricerca personalizzata