Programacion bluetooth java

Solo disponible en BuenasTareas
  • Páginas : 11 (2669 palabras )
  • Descarga(s) : 0
  • Publicado : 15 de noviembre de 2010
Leer documento completo
Vista previa del texto
Programación de dispositivos Bluetooth a través de Java
Abstract
En este documento se trata la programación de dispositivos
Bluetooth con Java mediante el API desarrollada por el JCP
y especificada en el JSR-82.
Keywords: Java, Bluetooth, J2ME, JSR-82, móviles.
1 Introducción
Bluetooth es una tecnología de comunicación
inalámbrica, al igual que la tecnología Wi-Fi o los
infrarrojos. Adiferencia de la primera, Bluetooth está
diseñada para dispositivos de bajo consumo y para
conexiones de corta distancia (10 metros). A diferencia
de los infrarrojos, Bluetooth es omnidireccional y tiene
un mayor ancho de banda (hasta 11 Mbit/ segundo).
Bluetooth es, pues, una tecnología ideal para la conexión
de dispositivos de bajas prestaciones (móviles, cámaras
de fotos, auriculares manoslibres, impresoras,…).
Uno de los mayores ámbitos de utilización de Bluetooth
es sin duda los teléfonos móviles. Cada vez es más
común encontrar terminales móviles con soporte para
Java y Bluetooth y simplemente es un paso natural que
surja la necesidad de programar estos dispositivos a
través de Java. Desde el JCP se ha desarrollado un JSR
que cubre esta necesidad. Se trata del JSR-82 queserá
explicado en este documento.
2 El JSR-82
El JSR-82[1] especifica un API de alto nivel para la
programación de dispositivos Bluetooth. Depende de la
configuración CLDC de J2ME, y se divide en dos
paquetes: javax.bluetooth y javax.obex. El primer
paquete provee la funcionalidad para la realización de
búsquedas de dispositivos, búsquedas de servicios y
comunicación mediante flujos dedatos (streams) o
arrays de bytes. Por otro lado el paquete javax.obex
permite la comunicación mediante el protocolo OBEX
(OBject Exchange); se trata de un protocolo de alto nivel
muy similar a HTTP.
3 El paquete javax.bluetooth
Primero abordaremos la programación de un cliente y
más tarde veremos cómo programar un servidor.
3.1 Clientes Bluetooth
Un cliente Bluetooth deberá realizar lassiguientes
operaciones para comunicarse con un servidor
Bluetooth:
• Búsqueda de dispositivos
• Búsqueda de servicios
• Establecimiento de la conexión
• Comunicación
El punto de partida es la clase LocalDevice que
representa el dispositivo en el que se está ejecutando la
aplicación. Este objeto es un singleton y se obtiene
mediante LocalDevice.getLocalDevice(). Este objeto
permiteobtener información sobre el dispositivo: modo
de conectividad, dirección bluetooth y nombre del
dispositivo.
El primer paso que debe realizar un cliente es realizar
una búsqueda de dispositivos. Para ello deberemos
obtener un objeto DiscoveryAgent. Este objeto es único y
se obtiene a través del objeto LocalDevice.
DiscoveryAgent da =
LocalDevice.getLocalDevice().getDiscoveryAgent();
El objetoDiscoveryAgent nos va a permitir realizar y
cancelar búsquedas de dispositivos y de servicios. Y
también nos servirá para obtener listas de dispositivos ya
conocidos. Esto se lleva a cabo llamando al método
retrieveDevices(). A este método se le debe pasar un
argumento de tipo entero que puede ser:
• DiscoveryAgent.PREKNOWN. Para obtener una
lista de dispositivos encontrados en búsquedasanteriores.
• DiscoveryAgent.CACHED. Para obtener una lista
de dispositivos “favoritos”.
El método retrieveDevices() devuelve un array de objetos
RemoteDevice. La clase RemoteDevice representa un
dispositivo remoto y tiene métodos similares a
LocalDevice que, recordemos, representa al dispositivo
en el que se ejecuta la aplicación. Así pues, podemos
obtener el nombre del dispositivomediante
getFriendlyName() y su dirección bluetooth mediante
getBluetoothAddress().
Podríamos omitir la búsqueda de dispositivos y pasar
directamente a la búsqueda de servicios en caso de que
deseásemos conectar con alguno de los dispositivos
pertenecientes a alguna de estas listas. Sin embargo lo
más común será intentar conectar con un dispositivo
encontrado en una búsqueda de dispositivos,...
tracking img