Curso de Android 2012/13



Documentos relacionados
CLASE SOCKET. 1. Crear un nuevo socket usando un constructor de la clase. 2. El socket trata de conectarse al host remoto.

MICQ. Trabajo Práctico Final Seminario de Ingeniería en Informática I Facultad de Ingeniería, UBA. Junio Cátedra: Pablo Cosso

Aplicaciones Cliente/Servidor en Gambas Prof: Mileti, P.

1. Definición de puerto 2. Sockets 3. Conceptos cliente/servidor 4. Definición de Stream 5. Concurrencia, multiprogramación y multitarea 6.

MODELO DE IMPLEMENTACIÓN

Sockets en Java. La Creatividad proviene de un conflicto de ideas. Uso de Sockets

Información general de Masergy Communicator

ConfigFree para una conectividad sencilla

POSGRADOS EN LINEA CENTRO PANAMERICANO DE ESTUDIOS SUPERIORES. Guía Rápida.

Guia rápida EPlus Cliente-Servidor

Tema: Configuración de red AD-HOC

Guía de inicio rápido a

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

CN-GP50U. Instrucciones de Funcionamiento. Visor de Imagenes Teléfono (Manos-libres) Español. Sistema de Navegación Portátil

Telnet Comunicaciones 1. Luis Alfredo da Silva Gregori Gonzalez Rhamin Elrhouate July 2014

Manual de usuario Versión 1.0

Capítulo 5. Cliente-Servidor.

Guía de inicio rápido de Zello para TORQUE de Kyocera

CAPITULO 8. Planeamiento, Arquitectura e Implementación

Visor de presupuestos en Android

Usar Widex USB Link con Compass

Qué es Skype? Cuáles son las ventajas de Skype?

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

Roles y Características

INSTITUTO TECNOLÓGICO DE SALINA CRUZ. Fundamentos De Redes. Semestre Agosto-Diciembre Reporte De Lectura

SISTEMAS DE INFORMACIÓN II TEORÍA

Configurar sincronización mediante Bluetooth con Windows Vista y Windows Mobile 5. Francisco A. Candelas 27 de marzo de 2008

Para descargar la versión más reciente de Skype accedemos al sitio web de Skype y luego hacemos clic en Descargar Skype para escritorio de Windows.

Manual del soporte en línea Web

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA

LICENCIATURA EN EDUCACION FISICA RECREACION Y DEPORTES

Principios básicos de las redes propias Nokia N93i-1

Guia de uso para cuentas de correo Correo electrónico.

MANUAL DE USUARIO AVMsorguar

Análisis y diseño del sistema CAPÍTULO 3

Manual de Usuario (iphone).

Iniciar sesión y comenzar

Sistema de marketing de proximidad

Instalar GFI WebMonitor

Ingeniería de Software. Pruebas

Guía de configuración para cuentas de correo

MANUAL DE USO MICROSOFT LYNC ONLINE

Modelo de Objetos Distribuidos

Tekla Structures Guía Rápida de Licencias. Versión del producto 21.1 agosto Tekla Corporation

Información sobre seguridad

UNIVERSIDAD DE SALAMANCA

Administración de la red (Windows 2008)

11 Número de publicación: Número de solicitud: Int. Cl.: 74 Agente: Urízar Anasagasti, Jesús María

Manual del Protocolo XML-RPC de Mensajería Negocios

Manual del Usuario para Nokia Música

Luis Villalta Márquez

Práctica 4: Java Remote Method Invocation (RMI)

Cómo transferir un archivo de una computadora PC Windows a un teléfono móvil Android a través de enlace Bluetooth:

Introducción a las Redes de Computadoras. Obligatorio

MANUAL LL-380. Manual de instrucciones Bluetooth 3.0 LL-380

LABORATORIO 1. Construcción de un cable de red cruzado

Estudio y Adaptación de la Plataforma de Agentes Móviles SPRINGS para Entornos Inalámbricos

TELECOMUNICACIONES Y REDES

MANUAL DE USUARIO DE UNIFIED IM

11 Número de publicación: Int. Cl.: 74 Agente: Carpintero López, Mario

COMUNICACIÓN ENTRE PROCESOS SOCKETS

Compartir internet Ad Hoc con Microsoft Windows XP

Trabaja los Sistemas Aspel desde tus sucursales con Terminal Server

Unidad Didáctica 12. La publicación

(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera

Requerimientos Técnicos para mantenimiento anual de certificación del Área Perimetral

Presentación de BlackBerry Collaboration Service

Instalación y configuración de SAE-Móvil

MANUAL DE USUARIO: AGENCIA DE VIAJES Configuración. Principales funcionalidades

Guía de inicio rápido de Laplink PCsync

2016 Frontier Communications. Aquí está tu guía de fácil instalación. Aprovecha al máximo el servicio de Internet de Alta Velocidad de Frontier.

Windows Server Windows Server 2003

Cuando termines, simplemente cierra tu navegador (normalmente) y el Acelerador todito Card quedará en espera en la bandeja de sistema.

De Lotus Notes 8.5 a Office 365 para la empresa

Acronis License Server. Guía del usuario

Guía de inicio rápido de Laplink FileMover

Información sobre seguridad

CITRIX Citrix Application Streaming

TELECOMUNICACIONES Y REDES

El proceso de Instalación de Microsoft SQL Server 2008

Introducción a la Firma Electrónica en MIDAS

PUCV - Pontificia Universidad Católica de Valparaíso

INTERNET I LECCIÓN N 3 Cambio de la página principal

Curso de HTML5 y CSS3

PASOS PARA CONFIGURAR SQL SERVER PARA ADMITIR CONEXIONES REMOTAS.

Movilidad. Pasa demasiado tiempo fuera de la oficina? Solución móvil Dynamics NAV

Guía de instalación Command WorkStation 5.5 con Fiery Extended Applications 4.1

Manual para el uso de Skype

HOW TO SOBRE REMOTE ACCESS VPN MODE EN LINUX

Eurowin 8.0 SQL. Manual de la FIRMA DIGITALIZADA

Introducción a las redes de computadores

CUPS Administración de impresora

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA. Daniel Díaz Sánchez

Lab 01: Programación de Sockets en TCP

CENTRAL VIRTUAL IPLAN

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

Este producto es un kit de dos dispositivos que permitirán llevar la Banda ancha a sectores de l hogar que tengan baja señal WIFI..

Prototipado y ejecución de aplicaciones SD con GeneXus

PROYECTO. Solución Empresarial Ingeniería y Desarrollo de Software - info@solucionempresarial.com.

Transcripción:

Curso de Android 2012/13 Conectividad Bluetooth

Bluetooth es una tecnología standard abierta, global wireless para intercambio de datos sobre distancias cortas entre aparatos fijos y móviles, creado areas de redes personales (PANs), con altos niveles de seguridad. EL marco de aplicaciones de Android provee acceso a la funcionalidad Bluetooth a través de la Android Bluetooth API 4 tareas principales para comunicarse usando Bluetooths La configuración de Bluetooth Encontrar aparatos que estén o bien ya apareados o que se encuentre dentro del area local Conectar aparatos Transferir datos entre aparatos

Clases e interfaces necesarias (I) BluetoothAdapter (radio bluetooth) -Descubrimiento de otros aparatos BT -Consulta a la lista de aparatos ligados - Instanciar un BluetoothDevice usando una dirección MAC conocida - Crear un BluetoothServerSocket para escuchar las conversaciones de otros equipos BluetoothDevice Es el equipo remoto con BT. Esta clase se usa para pedir conexión con un equipo remoto a través de la interfaz BluetoothSocket BluetoothSocket Punto de conexión para intercambiar datos con otros equipos BT usando InputStream y OutputStream. Es la interfaz de un socket BT. La devuelve el BluetoothServerSocket ante un pedido de conexión cuando la conexión es aceptada BluetoothServerSocket Representa un servidor socket abierto para pedidos entrantes. Al comenzar una conexión un aparato debe abrir un servidor socket

Clases e interfaces necesarias (II) BluetoothClass (solo lectura) Describe las características y capacidades del equipo BT BluetoothProfile: Interfaz que especifica el perfil de la aplicación (Android 3.0) - Auriculares (BluetoothHeadset) Provee soporte para auriculares para móviles junto con Hands-Free - A2DP (Advanced Audio Distribution Profile- BluetoothA2dp) Define como audio de alta calidad puede ser transmitido entre equipos BT - Equipos de salud (BluetootHealth a partir de Android 4) Para crer aplicaciones que se comunican con equipamiento de salud que utilicen BT (monitores de frecencia cardíaca, medidores de tension arterial, etc) BluetoothHeathCallback, BluetoothHealthAppConfiguration - Manos libres (Hands-Free) BluetoothProfile.ServiceListener Interfaz que notifica cuando un cliente ha sido conectado o desconectado de un servicio con un determinado perfil.

Permisos Bluetooth BLUETOOTH: Necesario para realizar cualquier comunicación BT (pedir o aceptar conexiones, enviar datos) BLUETOOTH_ADMIN: Necesario para descubrimiento de equipos o configurar BT Para aplicaciones que necesiten descubrir y conectar equipos BT Se declaran en el Manifiesto <manifest... > <uses-permission android:name="android.permission.bluetooth" />... </manifest>

Pasos para la conectividad 1)Obtener el adaptador Bluetooth (sellama al método estático getdefaultadapter()) BluetoothAdapter mbluetoothadapter = BluetoothAdapter.getDefaultAdapter(); 2) Habilitar el adaptador (llamando a startactivityforresult con el intent ACTION_REQUEST_ENABLE) if (!mbluetoothadapter.isenabled()) { Intent enablebtintent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startactivityforresult(enablebtintent, REQUEST_ENABLE_BT); }

3) Descubrimiento de equipos Búsqueda en el area local de equipos que tengan BT habilitado Se usa el BluetoothAdapter Una vez descubierto se intercambian el nombre, tipo, y la dirección MAC única Se elige si comunicarse o no Una vez comunicado por primera vez se hace una peticion de vinculación. Una vez vinculados las conexiones siguientes se hacen sin necesidad de descubrimiento. Estar vinculados no significa estar conectados Estar conectados significa compartir un canal RFCOMM. El API de Android requiere estar vinculados antes de generar el canal RFCOMM

3) Descubrimiento de equipos Primero se buscan los aparatos vinculados llamando a getbondeddevices Set<BluetoothDevice> paireddevices = mbluetoothadapter.getbondeddevices(); // si hay aparatos vinculados if (paireddevices.size() > 0) { // Loop a través de los aparatos vinculados for (BluetoothDevice device : paireddevices) { //Agrega el nombre y dirección a un array adapter para mostrarlos en una ListView marrayadapter.add(device.getname() + "\n" + device.getaddress()); } }

3) Descubrimiento de equipos Luego comienza el descubrimiento de servicios llamando al método startdiscovery() La aplicación debe registrar un BroadcastReceiver para el intent ACTION_FOUND // Crear un BroadcastReceiver para ACTION_FOUND private final BroadcastReceiver mreceiver = new BroadcastReceiver() { public void onreceive(context context, Intent intent) { String action = intent.getaction(); // cuando se encuentra un aparato if (BluetoothDevice.ACTION_FOUND.equals(action)) { // obtiene el objeto BluetoothDevice desde el intent BluetoothDevice device = intent.getparcelableextra(bluetoothdevice.extra_device); // Agrega el nombre y dirección a un array adapter para mostrarlos en una ListView marrayadapter.add(device.getname() + "\n" + device.getaddress()); } } }; // Registra el BroadcastReceiver IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); registerreceiver(mreceiver, filter);

3) Descubrimiento de equipos Si se quiere hacer visible el dispositivo propio a otros equipos hay que llamar a startactivity con el intent ACTION_REQUEST_DISCOVERABLE Intent discoverableintent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); discoverableintent.putextra(bluetoothadapter.extra_discoverable_duration, 300); startactivity(discoverableintent);

4) Conectando equipos Implementar mecanismos de ambos lados (clientes y servidor) Un equipo abre un server socket y el otro, usando la dirección MAC del server inicia la conexión. Servidor: a) Crea unbluetoothserversocket llamando al listenusingrfcommwithservicerecord(string,uuid) b)comienza a escuchar llamando al método accept() Es bloqueante, hasta una excepción o hasta que el aparato remoto mande un pedido de conexión con la UUID correspondiente. En este caso el metodo accept() devuelve BluetoothSocket c) Si no se aceptan mas conexiones invocar al método close()

4) Conectando equipos Implementar mecanismos de ambos lados (clientes y servidor) Un equipo abre un server socket y el otro, usando la dirección MAC del server inicia la conexión. Cliente a) Crea unbluetoothsocket llamando al createrfcommwithservicerecord(uuid) b)inicia la conexión llamando al método connect() Connect chequea el UUID, si coincide con el del serversocket y el remoto acepta la comunicación, comparten entonces el canal Rfcomm. Es bloqueante, se realiza con un thread separado del thread principal.

5) Gestionando la conexión Una vez conectados comienza el envío de datos 1) Se hace usando las clases InputStream y OutputStream que manejan la transmisión a través del Socket. Para obtener y enviar datos se invocan a los métodos getinputstream() Y getoutputstream. 2) Se leeen y se escriben datos en los streams usando read(byte[]) y write(byte[]) respectivamente Y eso es todo básicamente

EJEMPLO CHAT CON BLUETOOTH Permisos declarados en el Manifiesto Dos actividades declaradas en el Manifiesto: DeviceListActivity (Abre cuadro de diálogo) BluetoothChat (Inicia la aplicación)

EJEMPLO CHAT CON BLUETOOTH Tres archivos.java (dos actividades y una clase) BluetoothChat.java: Archivo principal, despliega el chat DeviceListActivity.java: Actividad que aparece como un diálogo. Muestra una lista de los aparatos vinculados y los descubiertos BluetoothChatService.java: Clase que configura y gestiona las comunicaciones con otros equipos. Tres threads: Uno que escucha, otro para conectar, Otro para enviar datos