Bluettoth

Solo disponible en BuenasTareas
  • Páginas : 11 (2675 palabras )
  • Descarga(s) : 0
  • Publicado : 23 de febrero de 2012
Leer documento completo
Vista previa del texto
Programación de dispositivos Bluetooth a través de Java
Alberto Gimeno Brieba
gimenete@gimenete.net

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.

(OBject Exchange); se trata de un protocolo de alto nivel muy similar a HTTP.

3

El paquete javax.bluetooth

Primeroabordaremos la programación de un cliente y más tarde veremos cómo programar un servidor.

Keywords: Java, Bluetooth, J2ME, JSR-82, móviles.

1

Introducción
es una tecnología de comunicación

3.1

Clientes Bluetooth
para comunicarse con un servidor

Un cliente Bluetooth deberá realizar las siguientes operaciones Bluetooth: • • • • Búsqueda de dispositivos Búsqueda de servicios Establecimientode la conexión Comunicación

Bluetooth

inalámbrica, al igual que la tecnología Wi-Fi o los infrarrojos. A diferencia 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íaideal para la conexión de dispositivos de bajas prestaciones (móviles, cámaras de fotos, auriculares manos libres, 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 através de Java. Desde el JCP se ha desarrollado un JSR que cubre esta necesidad. Se trata del JSR-82 que será explicado en este documento.

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 permite obtener 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.

2

El JSR-82

DiscoveryAgent

da

=

El JSR-82[1] especifica un API de alto nivel para la programación dedispositivos 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 de datos (streams) o arrays de bytes. Por otro lado el paquete javax.obex permite la comunicación mediante el protocolo OBEXLocalDevice.getLocalDevice().getDiscoveryAgent(); El objeto DiscoveryAgent 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 unalista de dispositivos encontrados en búsquedas anteriores.



DiscoveryListener.INQUIRY_COMPLETED búsqueda concluyó con normalidad,

si

la



DiscoveryListener.INQUIRY_TERMINATED si la búsqueda ha sido cancelada manualmente o



DiscoveryAgent.CACHED. Para obtener una lista de dispositivos “favoritos”. •

DiscoveryListener.INQUIRY_ERROR si se produjo un error en el procesode búsqueda.

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 dispositivo mediante getFriendlyName() y su dirección bluetooth mediante getBluetoothAddress()....
tracking img