Home
J2ME – packages opzionali

13 Febbraio 2003

J2ME – packages opzionali

di

Strumenti standard per aumentare le potenzialità del J2ME nella produzione di software per dispositivi wireless

Quando il MIDP ti sta stretto

La piattaforma J2ME è composta principalmente da configurazioni e profili.

Ciascuna di queste suddivisioni prevede la fornitura di specifiche API di sviluppo (sostanzialmente si tratta di package Java) che permettono di accedere ad alto livello alle caratteristiche della fascia di dispositivi che ci interessa.

I telefoni cellulari, per esempio, sono compresi nel profilo MIDP (Mobile Information Device Profile) che a sua volta fa parte della configurazione CLDC (Connected Limited Device Configuration).

Per essere il più possibile flessibile e compatibile con i dispositivi cui si indirizza, questo profilo deve essere, per forza di cose, limitato ad un set minimale di funzionalità. Questo set è sufficiente nella maggior parte dei casi, ma, poiché l’appetito vien mangiando, ecco emergere la necessità di nuove funzionalità non presenti del profilo originale.

Le soluzioni possibili per saziare la “fame” da funzionalità sono almeno due:

– API specifiche di una certa marca di dispositivi (che saranno tendenzialmente incompatibili con le altre marche e quindi l’applicazione non sarà più portabile)

– nuovi package standard in grado di fornire funzionalità aggiuntive

La scelta più intelligente, a parte casi particolari, sembra essere certamente la seconda, vediamo quindi quali sono i package opzionali più interessanti.

JSR 66: RMI Optional Package

RMI (Remote Method Invocation) è la possibilità offerta dal J2SE di utilizzare, dall’interno di oggetti in esecuzione dentro una virtual machine, metodi di oggetti in esecuzione all’interno di un’altra.

RMIOP è quindi un sottoinsieme di RMI come definito all’interno del J2SE 1.3 ed è un’estensione applicabile alla configurazione CDC. Non è quindi utilizzabile come estensione del profilo MIDP né di altri profili interni alla CLDC.

Le specifiche complete della RMIOP sono disponibili qui.

JSR 120: Wireless Messaging API

Gli SMS hanno cambiato in breve tempo il modo di comunicare di.

Una piattaforma di sviluppo per applicazioni che devono essere eseguite sui telefoni cellulari non poteva non avere le API per poter utilizzare il protocollo SMS.

Il WMA estende il CLDC Generic Connection Framework definendo una nuova interfaccia di connessione.

Per verificare la presenza dell’interfaccia sul proprio dispositivo è necessario eseguire un test di questo genere:

public static boolean isWMAPresent(){ try { Class.forName(“javax.wireless.messaging.MessageConnection”); return true; } catch(Exception e){ return false; } }

Se il test ha esito positivo è possibile utilizzare le API in questo modo:

import javax.microedition.io.*; import javax.wireless.messaging.*; MessageConnection conn = null; String url = “sms://+417034967891”; try { conn = (MessageConnection) Connector.open(url); TextMessage msg = conn.newMessage(conn.TEXT_MESSAGE); msg.setPayloadText(“Please call me!”); conn.send(msg); } catch(Exception e){ // handle errors } finally { if(conn != null){ try { conn.close(); } catch(Exception e){} } }

Conclusioni

La lista completa dei package opzionali a disposizione della piattaforma J2ME è disponibile qui.

È molto probabile che l’aver definito un protocollo di estensioni renda la piattaforma ancora più flessibile di quanto non sia già adesso. In breve tempo ci saranno estensioni di tutti i tipi e soprattutto compatibili con metodi di comunicazione che ancora oggi non conosciamo.

L'autore

  • Massimo Canducci
    Massimo Canducci vanta oltre 25 anni di esperienza nel campo dell'innovazione e della digital transformation ed è Chief Innovation Officer per Engineering Ingegneria Informatica. È docente alla Singularity University, l'Università di Torino e l'Università di Pavia, e insegna in master MBA.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.