Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Artigo Java Magazine 17 - Conteúdo gerenciado no J2ME
Artigo da Revista Java Magazine - Edição 17
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?

Conteúdo gerenciado no J2ME
Conheça a nova Content Handler API
A JSR-211 (Content Handler API – CHAPI) define uma das mais inovadoras e úteis APIs do J2ME. A CHAPI é um pacote opcional J2ME, cuja especificação estará em versão final quando esta edição for publicada. Em linhas gerais, a Content Handler API estabelece um modelo de comunicação entre aplicações – tanto Java quanto não-Java –, permitindo que MIDlets atuem como manipuladores de tipos de arquivos específicos. Uma das maiores barreiras para o desenvolvimento de aplicativos J2ME integrados à plataforma de hardware tem sido a dificuldade de comunicação entre aplicações. Este é justamente o ponto tratado pela API.
Content Handlers
A especificação, como indica seu título, baseia-se no conceito de content handlers (manipuladores de conteúdo). De acordo com esse modelo de execução, um MIDlet pode registrar-se no sistema operacional do dispositivo para manipular arquivos de um ou mais tipos MIME (por exemplo image/png), determinando quais ações ele pode executar sobre esses arquivos (visualizar, criar, renomear etc).
Feito o registro, o MIDlet passa a ser ativado automaticamente, sempre que for requisitada uma das ações determinadas num arquivo do tipo específico. O MIDlet que faz a invocação não indica explicitamente qual aplicação está chamando; ele informa a URI do conteúdo a ser manipulado e a operação a ser realizada, e parâmetros opcionais.
Partes da API
Composta de apenas sete classes e interfaces, todas no pacote javax.microedition.content, a CHAPI define os mecanismos necessários para invocar um handler e obter uma resposta, registrar e desregistrar um handler, pesquisar por handlers instalados e responder a invocações. A Tabela 1 resume os elementos da API.
Invocando um handler
A invocação de um content handler é simples; veja um exemplo na Listagem 1. No trecho mostrado, a aplicação requisita, via um objeto Invocation, que seja ativada a aplicação manipuladora para
arquivos vcard. É fornecida a URI do objeto a ser manipulado e a operação de abertura de arquivo (ContentHandler.ACTION_OPEN),
além de um argumento que pode ser usando na aplicação manipuladora
para executar alguma lógica de negócio específica.
A invocação de um handler é feita com Registry.invoke(). O método retorna um
valor booleano, que indica se a aplicação atual deve ser fechada antes que o handler seja ativado. Este valor de retorno reflete
os dois modos de execução de manipulação de conteúdo previstos pela
especificação.
O modo utilizado depende da capacidade de processamento paralelo do dispositivo. Em dispositivos que permitem a execução simultânea de aplicativos, o handler pode ser executado em paralelo e devolver uma resposta à aplicação invocadora sem que esta precise ser finalizada. Se não houver suporte à execução paralela, a aplicação invocadora deverá ser fechada antes que o conteúdo possa ser manipulado.
O exemplo faz ainda o tratamento da
resposta. Usando Registry.getResponse(), é possível recuperar um objeto Invocation contendo o resultado do processamento do handler; as propriedades desse objeto (action, args, url, status etc.) podem ser acessadas para obter informações sobre o resultado.
Construindo um handler
"
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Sun Certified Java Programmer (SCJP), Web Components Developer (SCWCD) e Micro Application Developer (SCMAD). Atua como consultor em projetos de mobilidade e aplicações wireless.



