Esse artigo faz parte da revista Java Magazine edição 21. Clique aqui para ler todos os artigos desta edição

Atenção: por essa edição ser muito antiga não há arquivo PDF para download.Os artigos dessa edição estão disponíveis somente através do formato HTML. 

J2ME em PDAs

Java na Palma da Mão com a JSR-75

Faça sua aplicação J2ME interagir com os dados dos principais programas de PDAs e acesse os arquivos do dispositivo.

 

Neste artigo trataremos da JSR-75, “pacotes opcionais para PDAs para a plataforma J2ME”, originalmente chamada “PDA Profile”. Essa especificaçõe permite criar aplicações J2ME que fazem acesso a dados de aplicativos comuns nos PDAs como tarefas e contatos, além de se integrar aos seus sistemas de arquivos.

 

Em duas partes

A JSR-75 divida-se em duas especificações independes. O pacote opcional (optional package) FileConection volta-se ao acesso a sistemas de arquivos (fixos ou removíveis) do dispositivo; o pacote opcional PIM (Personal Information Management) fornece acesso a dados de contatos, eventos e tarefa. Ambos dependentem apenas do CLDC 1.0, sendo, portanto simples de serem disponibilizados na maioria dos PDAs

Para testar MIDlets que usam as novas APIs é necessário baixar o Wireless Toolkit 2.2 (ou uma versão mais recente). Ao criar um novo projeto no WTK você deve ativar a API adicional “PDA Profile for J2ME (JSR-175)”, como mostrado na Figura 1. (Essa mesma janela pode ser chamada depois de criado o projeto o botão Settings.)

 

Figura 1. Configurando as APIs do projeto

 

“Para criar MIDLets baseados nos pacotes opcionais da JSR-75  na sua IDE ou editor, você deve adicionar ao classpath a biblioteca jsr75.jar, localizada no diretório lib da instalação do WTK 2.2.”

 

FileConnection

A API FileConnection (javax.microedition.io.file) tem como interface principal FileConnection, que estende StreamConnection do GCF (Generic Connection Framework). O CGF é a API básica de conectividade do J2ME (veja detalhes na coluna “Java de Bolso” da Edição 6).

Já os listeners FileSystemListener “escutam” por mudanças nos sistema de arquivos, como por exemplo, uma troca de cartões de memória. Esses listeners são registrados com a classe FileSystemRegistry.

Os sistemas de arquivos têm um ou mais roots (“raízes”), similares ao “c:\” e “d:\” do DOS/Windows. Um PDA com memória fixa e um cartão de memória removível, por exemplo, terá no mínimo dois roots. Pode-se obter todos os roots “montados” chamando-se FileSystemRegistry.listRoots(), que retorna um java.util.Enumeration.

Continuando a descrição da API, a exceção IllegalModeException é lançada quando uma operação não é permitida para o tipo de conexão aberta, por exemplo ao se tentar criar um arquivo através de uma conexão read-only. E se uma conexão ao sistema de arquivos for fechada antes de um método que a estiver usando terminar de executar, é lançada ConnectionCloseException.

Já podemos mostrar alguns exemplos. O seguinte código obtém os nomes dos roots no dispositivo:

 

Enumeration e = FileSystemRegistry.

lisRoots();

while (e.hasMoreElements()){

  String filename = (String) e.nextElement(); ...

Quer ler esse conteúdo completo? Tenha acesso completo