Vous êtes sur la page 1sur 25

Programando Bluetooth com J2ME

Prof. MSc. Joo Ricardo Bittencourt

Update: 27 Mai. 2010 joaorb@unisinos.br

GT-JEDI Jogos Digitais Programao Multiplataforma UNISINOS

Sumrio
1. 2. 3. 4. 5. 6.

O Contexto A Tecnologia A Arquitetura A JSR-82 Programando Bluetooth Exemplos

Contexto

Comeou em 1994 pela Ericsson A tecnologia Bluetooth mantida pelo Bluetooth Special Interest Group (SIG) com mais de 6 mil membros de diferentes setores:

Telecomunicaes, computao, indstria automobilstica, automao industrial, setor musical,... Agere, Ericsson, Intel, Lenovo, Microsoft, Motorola, Nokia e Toshiba

Origem do nome: Rei Harald Blatand conhecido como Harold Bluetooth. Viveu no sculo X e unificou faces suas, norueguesas e dinamarquesas.

Contexto

Principal objetivo interconectar dispositivos sem fio curta distncia com baixo custo Interconexo entre diferentes tipos de dispositivos

Celulares, telefones,PDAs, PCs, automveis, impressoras, mouse, teclado, cmera digital, fones de ouvido, hot spots, culos, jaquetas, consoles de videogame,MP3 players, tnis, monitor cardaco, jogos mveis, bluejacking e redes sociais.

Surgimento da PAN (Personal Area Network)

Tecnologia

Usam a faixa ISM (Industrial, Scientific,Medical) de 2,45Ghz


Pode dividir esta banda em 79 canais Pode sofrer influncia do microondas, porto eletrnico, bab eletrnica, redes 802.11 Classe 1: at 100m Classe 2: at 10m Classe 3: at 1m

Trs classes de dispositivos Bluetooth


Tecnologia

Dois tipos de conexo:

Asynchronous Connectionless (ACL)


Trfego de dados Assimtrico: 721Kbps e 57.6Kbps (retorno) Simtrico: 432.6 Kbps

Synchronous Connection Oriented (SCO)


Suporta 3 canais para transmisso de udio/voz Velocidade de 64Kbps

Arquitetura

Cada dispositivo possui um endereo fixo e nico (BD_ADDR) de 48 bits Comunicao entre um dispositivo mestre (master) e dispositivos escravos (slaves) Uma rede dispositivos BT chamada de piconet

Possui um dispositivo master que inicia um link de comunicao At 7 dispositivos escravos Um slaver pode trocar de papel com o master Compartilham o mesmo canal

http://www.tutorial-reports.com/system/files?file=bluetoothscatternetpiconet.gif

Arquitetura

Vrias piconets em uma mesma rea formam uma scatternet


Dispositivos slavers podem participar de diferentes piconets Dispositivo pode ser master em uma piconet e slaver em uma ou mais piconets

S4 S1
Piconet A

S5 S3 S6
Scatternet

S7

M1

M2
Piconet B

S2

Arquitetura

Utiliza um modelo de pilha de protocolos para facilitar o desenvolvimento de hardware e software Chamada de Bluetooth Stack Protocolos de mais baixo nvel (hardware) e de alto nvel (software)

Arquitetura

Arquitetura

Baseband Link Controller


Estrutura base de comunicao Permite abrir canais de udio diretamente entre devices Configurao do link entre dispositivos Responsvel pela segurana criptografia e autenticao Implementado em software responsvel pela interconexo das aplicaes com hardware Equivalem aos drivers de um sistema operacional

Link Manager Protocol (LMP)


Host Controller Interface (HCI)

Arquitetura

Logical Link Control and Adaptation Layer (L2CAP)


Oferece suporte ao trfego de dados (ACL) No suporta udio Oferece servio orientado a conexo para protocolos de alto nvel. Troca de mensagens L2CAP Usado para descobrir dispositivos Bluetooth Protocolo que simula a porta serial conforme o padro RS-232

Service Discovery Protocol (SDP)

RFCOMM

Arquitetura

Object Exchange Protocolo (OBEX)


Definido pelo IrDA (Infrared Data Association) Serve para trocar objetos de forma sncrona e simplificada Objetos: vCard, vCalendar WAP PPP TCP/UDP/IP

Outros protocolos

Arquitetura

Profiles

Definies dos protocolos para um determinado modelo de uso da tecnologia Bluetooth GAP Generic Access Profile
Todos os dispositivos implementam.

General Profiles

SPP Serial Port Profile SDAP Service Discover Application Profile GOEP Generic Object Exchange Profile

JSR-82

Implementao do padro Bluetooth para plataforma J2ME (dispositivos com poucos recursos) Permite:

Registrar servios Descobrir dispositivos e servios Permite conexo RFCOMM, L2CAP e OBEX Criar conexes entre dispositivos enviar e receber dados No suporta comunicao via voz Gerencia e controla a comunicao das conexes Oferece servios de segurana

JSR-82

Programando Bluetooth
1. Configurar o dispositivo Bluetooth 2. Gerenciar o dispositivo 3. Procurar dispositivos 4. Registrar servios 5. Procurar servios 6. Efetuar conexo atravs do RFCOMM

Programando Bluetooth
1. Configurar o dispositivo Bluetooth

Inicializar a pilha Bluetooth Dispositivos oferecem uma aplicao externa para configurar a pilha Bluetooth Control Center (BCC) No BCC possvel definir:

Nome amigvel para o dispositivo (alias) Se visvel por outros dispositivos Ligar/desligar o Bluetooth Se requer autenticao

Programando Bluetooth
2. Gerenciar o dispositivo

As classes LocalDevice e RemoteDevice so responsveis em manter as informaes definidas pelo profile GAP Oferecem informaes sobre endereo e nome dos dispositivos Alm de informar o tipo de device (DeviceClass) e os tipos de servios que so oferecidos

Programando Bluetooth
3. Procurar dispositivos

necessrio obter um agente (DiscoveryAgent) para buscar os dispositivos remotos Pode efetuar as buscas da seguinte forma: Efetuar uma nova busca Buscar dispositivos pr-conhecidos Buscar dispositivos em uma consulta anterior

Programando Bluetooth
3. Procurar dispositivos

Efetuar uma nova busca

LocalDevice local = LocalDevice.getLocalDevice(); DiscoveryAgent agente = local.getDiscoveryAgent(); agente.startInquiry();

Buscar dispositivos pr-conhecidos

DiscoveryAgent agente = local.getDiscoveryAgent(); RemoteDevices dev[] = agente.retrieveDevices(DiscoveryAgent.PREKNOWN);

Buscar dispositivos em uma consulta anterior

DiscoveryAgent agente = local.getDiscoveryAgent(); RemoteDevices dev[] = agente.retrieveDevices(DiscoveryAgent.CACHED);

Programando Bluetooth
4. Registrar servio
//Servico RFCOMM String url = "btspp://localhost:6663366633111;name=TesteBT"; StreamConnectionNotifier servico = (StreamConnectionNotifier) Connector.open(url); ServiceRecord sr = local.getRecord(servico); //Bloqueia ateh criar a conexao StreamConnection conn = (StreamConnection) servico.acceptAndOpen(); //faz as operacoes necessarias //... //Encerra o servico servico.close();

Programando Bluetooth
6. Procurar servios

Localiza os servios que esto disponveis nos dispositivos remotos So descobertos atravs do uso do DeviceListener que deve ser implementada pela classe que deseja conhecer os servios

LocalDevice local = LocalDevice.getLocalDevice(); DiscoveryAgent agente = local.getDiscoveryAgent(); //define a priori os parametros da busca agente.searchServices(attrs,uuids,devices,listener);

Programando Bluetooth
6. Efetuar conexo atravs do RFCOMM

Dois dispositivos podem compartilhar apenas uma sesso por vez O esquema usada na URL: btspp Uma sesso pode ter mais de 60 conexes lgicas Um dispositivo pode ter at 30 servios ativos baseados em RFCOMM Dispositivo suporta um nico cliente por vez Aps a conexo criada basicamente utilizado o GFC/streams

Links teis

Bluetooth SIG http://www.bluetooth.com Sony Ericsson. Developing Applications with Java APIs for Bluetooth (JSR-82). Janeiro, 2004 Wireless Application Programing with J2ME and Bluetooth http://developers.sun.com/techtopics/mobility/ midp/articles/bluetooth1/ The Java APIs for Bluetooth Wireless Technology http://developers.sun.com/techtopics/mobility/ midp/articles/bluetooth2/ JSR-82 Bluetooth API e OBEX API http://java.sun.com/javame/reference/apis/js r082/index.html

Vous aimerez peut-être aussi