mercoledì 25 febbraio 2009

Un veloce aggiornamento

Mi dispiacerebbe se i miei cinque lettori pensassero che mi sono dato alla macchia e denunciassero la mia scomparsa, quindi riepilogo in questo post poco tecnico le novità degli ultimi giorni:
  • Ho iniziato ad usare abbastanza seriamente il Bold e devo riconoscere che è veramente un ottimo telefono: mi piace molto il modo d'utilizzo e le funzioni disponibili. Il tema standard non mi ha mai impressionato e, visto che sono appassionato del MacOS X (anche se purtroppo non posso permettermi un Mac) , l'ho sostituito con OSXLike di Hedone Design, che vale tutti gli Euro che costa, considerata la cura con cui è realizzato;
  • Ho completato la configurazione del BPS (BlackBerry Professional Server) sul nostro server di posta aziendale e ho attivato la mia casella di posta Exchange per l'accesso con il Bold. Al momento funziona solo tramite collegamento USB, perché non sono riuscito ad attivare l'estensione dell'abbonamento wireless. Senza scendere in troppi dettagli, riuscire a districarsi fra tutte le varie opzioni e tipologie di contratti previsti è molto più complesso che realizzare un sistema software aziendale, a meno di non tapparsi il naso e firmare tutti i moduli previsti, spendendo un capitale per attività che, come DataFox, possiamo tranquillamente portare a termine in completa autonomia.
  • Lo sviluppo della nuova applicazione procede abbastanza speditamente, anche se non credo di poter rispettare la scadenza di fine febbraio che mi sono dato. Anche in questo caso ho cercato di complicarmi un po' la vita (altrimenti che gusto c'è?) e fra le varie funzioni è prevista l'esportazione dei dati in formato CSV (compatibile con Excel), sia direttamente nella memoria (interna o scheda) che tramite email. Una volta pubblicata l'applicazione, dedicherò un articolo proprio al tema dell'accesso ai file su BlackBerry.
  • L'applicazione gratuita Copilota per BlackBerry ha superato in questi giorni i 400 download e questo risultato mi sembra lusinghiero, se non altro per l'interesse nelle funzionalità implementate. Nel frattempo ci siamo iscritti sul nuovo portale di RIM (BlackBerry Application StoreFront) e, se viene accettata, questa sarà la nostra prima applicazione pubblicata ufficialmente. Speriamo bene...
Per questa volta è tutto, buone cose a tutti.

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.
Ricerca personalizzata