Está en la página 1de 28

Ejercicio Propuesto (Lunabot Control):

Dentro de la aplicacin creada anteriormente, cree una nueva actividad (descripcin grafica + descripcin funcional*) que sirva como interfaz para controlar el Robocol Lunabot.

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Ejercicio Propuesto (Lunabot Control):


Tenga en cuenta las siguientes instrucciones en su aplicacin:

Durante esta sesin del tutorial, se ver como realizar la comunicacin via Bluetooth. Por ahora, considere enviar los comandos a un TextView y/o a travs del depurador.

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Referencias
developer.android.com Android Apps for Absolute Beginners, Apress. The Android Developer's Cookbook, Addison-Wesley. Android Recipes: A problem solution approach, Apress. ProAndroid, Apress.

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Referencias
developer.android.com Android Apps for Absolute Beginners, Apress. The Android Developer's Cookbook, Addison-Wesley. Android Recipes: A problem solution approach, Apress. ProAndroid, Apress.

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

David S. Flechas G.
(ds.flechas72@uniandes.edu.co)

Juan Manuel Soto


(jm.soto569@uniandes.edu.co)

Tcnicas y Tecnologas de Diseo Electrnico ttde.uniandes.edu.co

Contenido
Introduccin a Bluetooth Plantilla TTDE_Android_Bluetooth Construyendo Aplicacin + Bluetooth
Agregando permisos ManifestFile.xml Bluetooth User Interfaces Bluetooth Activities
Bluetooth Main Activity Bluetooth Device List Activity

Bluetooth Service

Resumen

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Introduccin a Bluetooth
Caractersticas principales
Tecnologa para la comunicacin de corto alcance Se puede encontrar en gran cantidad de dispositivos: o Mviles o Mdicos o Consolas Mantiene un alto nivel de seguridad en la informacin Tecnologa robusta, de bajo consumo de energa y econmica. Permite el manejo transmisin de datos y de voz de manera simultnea.

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Introduccin a Bluetooth
Caractersticas principales (2)
Alcance y consumo de potencia:
Clase Alcance [m] Potencia [mW] 1 1 1 2 10 2.5 3 100 100
Versin 1.2 2.0 3.0 4.0 Ancho de banda
1 Mbit/s 3 Mbit/s 24 Mbit/s 24 Mbit/s

Velocidades de transmisin:

Trabaja en la banda ISM (Industrial, Scientific and Medical) desde los 2.4GHz hasta los 2.485GHz. Alta inmunidad a la interferencia con otros dispositivos Bluetooth
David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Introduccin a Bluetooth
Comunicacin entre dispositivos tipo Cliente-Servidor

Aplicacin cliente

Dispositivo Bluetooth

Dispositivo Bluetooth

Aplicacin cliente

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Introduccin a Bluetooth
Conexin entre varios dispositivos (1)
2. Uno de los dispositivos se vuelve el maestro y los dems esclavos

1. Transmisin de mensajes para configuracin

Esclavo 1 Maestro

Esclavo 3

PICONET
Esclavo 2

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Introduccin a Bluetooth
Conexin entre varios dispositivos (2)
3. Un dispositivo puede pertenecer a ms de una piconet.

PICONET 2
Esclavo 1

Maestro

PICONET 1

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Introduccin a Bluetooth
Conexin entre varios dispositivos (3)
Conexin con varios dispositivos en lo que se llama una piconet. Cuando varios dispositivo Bluetooth entran en el rango de comunicacin se configura automticamente y dinmicamente una o varias piconet. Una piconet puede conectar hasta 7 dispositivos. Un dispositivo puede pertenecer a ms de una piconet.

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

API de Android para manejo de Bluetooth


Funciones generales:
Escaneo para identificacin de otros dispositivos Bluetooth

Preguntar al adaptador Bluetooth local por dispositivos emparejados


Establecer canales RFCOMM Conectar a otros dispositivos a travs del servicio de descubrimiento

Intercambiar informacin entre dispositivos


Administrar conexiones mltiples

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

API de Android para manejo de Bluetooth


Disponible en el paquete android.bluetooth

Principales clases (1):


BluetoothAdapter Representa el adaptador local (radio Bluetooth). Es el punto de entrada para toda interaccin Bluetooth. o Conoce lista de dispositivos emparejados o Instancia BluetoothDevice a partir de la direccin MAC o Crea BluetoothServerSocket para escuchar comunicaciones con otros dispositivos.

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

API de Android para manejo de Bluetooth


Principales clases (2):
BluetoothDevice Representa un dispositivo remoto. o Proporciona informacin general del dispositivo (nombre, direccin MAC, estado de la conexin) o Necesario para establecer conexin a travs de un BluetoothSocket BluetoothSocket Representa la interfaz a un socket de comunicacin. o Punto de la conexin para intercambio de informacin. o La informacin en el socket se escribe o se lee a travs de InputStream y OutputStream respectivamente.

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

API de Android para manejo de Bluetooth


Principales clases (3):
BluetoothServerSocket Representa un socket de servidor abierto para escuchar solicitudes de entrada de conexin. o Cuando la conexin se establece devuelve un BluetoothSocket y se elimina.

Permisos:
<manifest ... > <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> ... </manifest>

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

API de Android para manejo de Bluetooth


Permisos para acceder al servicio
BLUETOOTH o Para establecer comunicacin via Bluetooth. o Solicitar conexin, establecer conexin e intercambiar informacin. BLUETOOTH_ADMIN o Manipular configuracin del dispositivo Bluetooth o Requerido para iniciar el servicio de descubrimiento de dispositivos.

Permisos en el archivo manifiesto:


<manifest ... > <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> ... </manifest>

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

API de Android para manejo de Bluetooth


Configuracin y manejo de conexin
INICIO Obtener BluetoothAdapter Descubrir dispositivos Habilitarse como visible (Descubrible)

Habilitar Bluetooth Preguntar por dispositivos emparejados

Establecer conexin (como servidor o como cliente) Intercambiar informacin Cerrar conexin
David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

API de Android para manejo de Bluetooth


Configuracin y manejo de conexin

Establecer conexin como servidor:


Obtener BluetoothServerSocket mediante listenUsingRfcommWithServiceRecord(String name, UUID) en el adaptador. o UUID -> identificador nico de la conexin (debe ser el mismo en ambas aplicaciones) o Name -> nombre de la aplicacin Comenzar a escuchar mediante el mtodo accept() o Devuelve BluetoothSocket Cerrar el BluetoothServerSocket con el mtodo close()

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

API de Android para manejo de Bluetooth


Configuracin y manejo de conexin

Establecer conexin como cliente:


Obtener BluetoothSocket mediante BluetoothDevice y mtodo createRfcommSocketToServiceRecord(UUID) en el adaptador. o UUID -> identificador nico de la conexin (debe ser el mismo en ambas aplicaciones) Conectar mediante el mtodo connect() o Retorna cuando se ha comparado la UUID, es correcta y se ha establecido un canal de comunicacin.

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Plantilla: TTDE_Bluetooth
Wiki: ttde.uniandes.edu.co TOOLS => ANDROID TUTORIALS => APLICACIONES PLANTILLA BLUETOOTH TTDE

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Construyendo una Aplicacin Bluetooth


TTDE_Bluetooth User Interface

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Construyendo una Aplicacin Bluetooth


Probando la aplicacin TTDE_Bluetooth

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Construyendo una Aplicacin Bluetooth


Bluetooth Activities and Services:
.start() .write()

Bluetooth Activity

.connect()
mHandler

Bluetooth Service

main.xml
.startActivityForResult() .onActivityResult()

DeviceList Activity device_list.xml


David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Construyendo una Aplicacin Bluetooth


Permisos: ManifestFile.xml

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Construyendo una Aplicacin Bluetooth


Bluetooth Activities: Device List Activity

Su funcionamiento es transparente a las dems actividades. No requiere ninguna modificacin.

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Construyendo una Aplicacin Bluetooth


Bluetooth Service

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co

Construyendo una Aplicacin Bluetooth


Bluetooth Activities: Main Activity
Envo de Datos va Bluetooth
A travs del mtodo write(String) de esta actividad

Recepcin de Datos va Bluetooth


A travs del case del mHandler declarado en la actividad y asociado al servicio bluetooth.

*Debe existir una conexin establecida para empezar el envio/recepcin de Datos.

David Santiago Flechas - Juan Manuel Soto ttde.uniandes.edu.co