Artigo Webmobile 8- Bluecove: Comunicando aplicativos J2SE com aplicativos J2ME através de Bluetooth

Uma implementação da API JSR-82 para Java no Windows XP SP 2.

Esse artigo faz parte da revista WebMobile Edição 08. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse artigo em PDF.

Bluecove: Comunicando aplicativos J2SE com aplicativos J2ME através de Bluetooth

Uma implementação da API JSR-82 para Java no Windows XP SP 2

Leitura Obrigatória: Artigos da WebMobile introdutórios sobre Bluetooth (edições 3 e 4, ano 1).

Imagine que você deseja desenvolver uma aplicação para PC que acesse, através de um receptor USB bluetooth, dispositivos que tenham suporte a bluetooth como um celular, um notebook, uma impressora ou até mesmo um leitor de código de barras (Figura 1).

A princípio, a implementação de um aplicativo em J2SE que obtenha informações de um dispositivo através de uma comunicação bluetooth deveria ser algo bastante simples, levando em consideração que as facilidades disponibilizadas através de J2ME para implementar essa funcionalidade em dispositivos móveis também estejam presentes em J2SE.

Sendo assim, o mais intuitivo seria a realização dos seguintes passos: a inicialização da pilha de protocolos bluetooth (Nota 1) definindo os seus respectivos parâmetros de descoberta (GIAC - General Inquiry Access e LIAC - Limited Inquiry Access Code), seguido do envio de uma solicitação de descoberta de dispositivos (chamada inquiry) e, após isso, o envio e recebimento de dados em uma conexão RFCOMM com o dispositivo que foi selecionado.

Figura 1. Comunicação de desktops com bluetooth e outros dispositivos.

Nota 1. Pilha de protocolos bluetooth

Para o melhor entendimento do bluetooth, é importante conhecer como funciona a sua pilha de protocolos. Como qualquer outra tecnologia de comunicação, o bluetooth inclui uma pilha de protocolos, parte implementada em software e outra parte via firmware. Sua principal função é controlar as configurações do dispositivo, parâmetros de comunicação e níveis de consumo de energia, de forma que fique transparente para o desenvolvedor. Essa pilha é dividida em camadas (Figura 2). 

Figura 2. Pilha de Protocolos Bluetooth ( Fonte: Bluetooth SIG).

Na Tabela 1 são mostradas as principais camadas da pilha e que protocolos podem ser usados em cada uma.

Camadas de Protocolo Protocolos
Protocolos principais bluetooth Banda Base, LMP, L2CAP, SDP
Protocolo para substituição de cabos RFCOMM
Protocolo de controle de telefonia TCS Binary, AT Commands
Protocolos suportados PPP, TCP/UDP, IP, OBEX, WAP,WAE, vCard, vCal

                     Tabela 1. Camadas e Protocolos da Pilha Bluetooth (Tradução Bluetooth SIG)

 

Infelizmente, para esse tipo de comunicação, essas facilidades presentes em J2ME não foram definidas de forma nativa em J2SE. Com isso, a implementação de uma comunicação bluetooth entre um desktop e um outro dispositivo pode ser feita utilizando as seguintes abordagens:

·         Utilizar uma API Java com a implementação interna da pilha bluetooth: esta seria a melhor opção, pois a implementação das camadas da pilha ficam dentro do dispositivo bluetooth e a aplicação Java interagiria diretamente com o hardware do dispositivo, proporcionando melhor desempenho na execução de instruções. Contudo, a utilização dessa abordagem é pouco viável visto que aplicações desenvolvidas em outras linguagens teriam problemas em acessar essa API. Além disso, essa implementação seria " [...] continue lendo...

Artigos relacionados