Ejercicios - Servicios



Documentos relacionados
Servicios - Ejercicios

Ejercicios - Persistencia en Android: ficheros y SQLite

MANUAL DE USUARIO. DESCRIPCION DEL USO DEL SERVICIO POR WEB SERVICE DOCUMENTACION TECNICA PARA EL CONSUMO DE WEB SERVICE 2015

Guía de instalación del software de la asignatura

Crear una Activity en Android. Paso por paso

Android Creación de una aplicación sencilla: Forwarding - Página 1 -

MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA

Combinar comentarios y cambios de varios documentos en un documento

PRÁCTICA 1: FotoLlamada

Vamos a ver las dos formas básicas de arrancar PowerPoint.

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Desarrollo de una aplicación de ejemplo: movilidapp. Desarrollado por movilidapp

Este botón situado en la barra de título de la ventana de la aplicación, nos da acceso a un menú mediante el cual podemos, entre otras opciones:

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

Manual de la Aplicación Móvil Creapedidos. Gestión y seguimiento de pedidos desde tu dispositivo móvil.

1. El entorno de desarrollo Eclipse

Manual de ayuda para crear y gestionar Tareas, como actividad evaluable

INTRODUCCIÓN.

Programa Presupuestos de Sevillana de Informática.

Uso de varias pantallas y pantalla Splash

PROCEDIMIENTOS DE TÍTULOS. Para solicitar los títulos al finalizar determinadas enseñanzas es preciso seguir un proceso en la aplicación Plumier XXI.

Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences

Digitales Emitidos Versión 1.0

NORMA (SEPA) 22/11/2013

Programando para Android: una sencilla aplicación

Capitulo 4: Componentes Android

La ventana de Microsoft Excel

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, Madrid

*si tuvieron algún problema pueden verificar la documentación oficial Vamos a crear una BD llamada droid_login como lo muestra la siguiente imagen:

CIERRE DE PERÍODOS DE LIQUIDACIÓN

MANUAL DEL PROGRAMA DE ASESORAMIENTO (Asesores) Navegador y limpiar caché/cookies...2 Acceso al programa de Asesoramiento... 7

SECRETARÍA VIRTUAL Perfil Ciudadano

Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el C.

Internet aula abierta

L U I S P A T I Ñ O IN FOR M Á T I C A SIS T E M A S AVA N Z A DOS

INVENTARIO INTRODUCCIÓN RESUMEN DE PASOS

CÓMO CREAR NUESTRO CATÁLOGO

MANUAL TIENDA VIRTUAL. Paseo del Gran Capitán, Nº 62, Salamanca. Telf.: Fax:

Sistema Integrado de Control de Presencia Dactilar

B Visor de Pedidos Realizados en el día, de un Cliente o de TODOS pag.10

Manual del Ciudadano para el Uso del Portal de Cambio de Domicilio. Proyecto: Portal Cambio de Domicilio Revisión: 1.1 Fecha: Octubre 2015

INSTALACIÓN DE MEDPRO

AUTOR CARLOS EDUARDO BUENO VERGARA JORGE ARMANDO BUENO VERGARA USO DE LOS OBJETOS DEL PROGRAMA. Dfd INFORMÁTICA II PROFESOR. JOSÉ FRANCISCO AMADOR

reemplaza menú archivo y esta situado en la esquina superior izquierda de estos programas de

GESTION DE LA BASE DE DATOS

DBmessage TM. Manual de usuario

OBTENER DATOS EXTERNOS

Manual Smart Sync. para profesorado

Manual de Uso Web profesional

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

PROPUESTAS COMERCIALES

Para este ejemplo vamos a crear el marco de aplicación que se presenta en la captura de pantalla siguiente:

MACROS Y FORMULARIOS

Enviar Felicitación Navideña por con Off. 2007

Introducción RecetatorUSB

GIROS Bancarios en NOTIN

SISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

El catálogo y los listados

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Versión 4 - Tutoriales

INDICE. 1. Introducción El panel Entities view El panel grafico Barra de botones Botones de Behavior...

Proceso de Compra de Avisos Clasificados desde Internet

Manual de uso. Manual de uso - citanet 1

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

APLICATECA. didimo Marketing. Manual de usuario. By DIDIMO Servicios Móviles.

Gestión de usuarios en la web educativa del centro con JOOMLA!

Sumario. 1.- Proceso de activación en Vodafone Business Place. 2.- Alta y baja de usuarios. 3.- Posición. 4.- Histórico. 5.- Usuarios. 6.

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

QUÉ ES HOMEBASE? Encontrar Libros

Capítulo 2. Cuestiones previas

Manual IesFácil Move!

Muchos programas de aplicación contienen herramientas para proteger la información, por ejemplo, Microsoft Word que te permite:

Mini-guía: Gestión de Permisos

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP

CONFIGURACIÓN DE CORREO EN THUNDERBIRD

Manual de ayuda para la Solicitud Telemática de Cheques Guardería. Manual de ayuda para la Solicitud Telemática de Cheques Guardería

CIF-KM. GUÍA DE LOS PRIMEROS PASOS

MANUAL TRAMITACIÓN PROCEDIMIENTO

NemoTPV SAT Manual de usuario 1. NemoTPV SAT APLICACIÓN DE GESTIÓN DE SERVICIO TÉCNICO PARA PUNTOS DE VENTA DE EUSKALTEL

FOCO GESTIÓN DE GRUPOS

SIMULADOR DE REDES DE PETRI ASINCRONICAS

ESFINGE Estadísticas de las Industrias del Gas Manual de Usuario Ciudadano ÍNDICE

MANUAL INSTALACIÓN BÁSICO

Manual del panel. Core-Admin

Primeros pasos para una configuración rápida de la tienda.

Para aquellos que tengan conocimientos de Access es lo más parecido a una consulta de referencias cruzadas, pero con más interactividad.

INSTRUCCIONES DE ACTUALIZACION LETAB1019

GUÍA DE OUTLOOK. Febrero 2010

Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A)

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

REGISTRO DE USUARIOS Y CURSOS

1.- CREAR UNA BASE DE DATOS CON ACCESS

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

Transcripción:

Índice 1 Contador: Servicio con proceso en background (0.6 puntos)... 2 2 Broadcast Receiver: Captura de llamadas (0.6 puntos)...2 3 Broadcast Receiver: Reenvío de datos (0.6 puntos)...3 4 Arranque: Iniciar servicio al arrancar el móvil (0.6 puntos)... 4 5 Calculadora: Comunicación con el servicio (0.6 puntos)...4

1. Contador: Servicio con proceso en background (0.6 puntos) Los servicios se utilizan para ejecutar algún tipo de procesamiento en background. En este ejercicio vamos a crear nuestro propio proceso asociado a un servicio que ejecutará una determinada tarea. En este caso el proceso asociado contará desde 1 hasta 100 deteniéndose 5 segundos antes de cada incremento. Cada vez que se cambie de valor se mostrará un Toast que nos informe de la cuenta. En las plantillas tenemos el proyecto android-av-serviciocontador que ya incluye la declaración del servicio en el manifest, la actividad que inicia y detiene el servicio, y el esqueleto del servicio MiCuentaServicio. En el esqueleto que se proporciona, viene definida una extensión de AsyncTask llamada MiTarea. Los métodos onpreexecute, doinbackground, onprogressupdate y oncancelled están sobrecargados pero están vacíos. Se pide implementarlos, el primero de ellos tiene que inicializar el campo i que se utiliza para la cuenta, el segundo tiene que ejecutar un bucle desde 1 hasta 100, y en cada iteración pedir que se muestre el progreso (publishprogress) y hacer una pausa de 5 segundos con Thread.sleep(5000). El tercer método, onprogressupdate mostrará el Toast con el progreso, y por último el método de cancelación pondrá el valor máximo de la cuenta para que se salga del bucle. En los métodos del servicio, oncreate, onstartcommand y ondestroy, introduciremos la creación de la nueva MiTarea, su ejecución (método execute() de la tarea) y la cancelación de su ejecución (método cancel() de la tarea). El servicio deberá seguir funcionando aunque se salga de la aplicación y podrá ser parado entrando de nuevo en la aplicación y pulsando Stop. 2. Broadcast Receiver: Captura de llamadas (0.6 puntos) Se pide crear un proyecto android-av-broadcast que capture los números de teléfono de las llamadas entrantes y los muestre a través del LogCat. El proyecto tendrá un único fichero de código Java (llamado MiBroadcastReceiver) que implementará un BroadcastReceiver. En primer lugar añadiremos esta clase al Manifest, y le asignaremos un intent-filter que capture las acciones de tipo: "android.intent.action.phone_state". Además es necesario solicitar en el Manifest permisos para leer el estado del teléfono, para esto tenemos que añadir: "<uses-permission android:name="android.permission.read_phone_state"/>". En el método "onreceive" de nuestra clase "MiBroadcastReceiver" comprobaremos que el evento recibido es del tipo esperado: String action = intent.getaction(); if(action.equals("android.intent.action.phone_state") { 2

\\... Si es de este tipo obtendremos el número de teléfono de la llamada a partir de los extras que recibimos en el intent (revisar la sección correspondiente de teoría) y lo mostraremos en el Log. Al ejecutar esta aplicación Eclipse nos mostrará los siguientes avisos: "No Launcher activity found!", "The launch will only sync the application package on the device!". Esto es normal debido a que no hay una actividad principal que pueda mostrar, sin embargo sí que instalará la aplicación. Para comprobar que tu aplicación funciona correctamente abre la vista "Emulator Control" (Window > Show view > Other... > "Emulator Control") y realiza una llamada de prueba. Nota A partir de la versión 3.1 de Android es necesario que se incluya una actividad visible (además de la clase con el BroadcastReceiver) para que sea efectuado el registro del receiver. En esta actividad podríamos poner algún texto explicativo como: "Se ha registrado el servicio". 3. Broadcast Receiver: Reenvío de datos (0.6 puntos) Vamos a ampliar el ejercicio anterior para que al recibir una llamada envíe datos mediante un SMS a un número de teléfono. El servicio podría, por ejemplo, enviar la posición GPS cuando recibe la llamada de un número específico. En este ejercicio, por simplificar, enviaremos un SMS cuando se reciba una llamada desde cualquier número y como texto del SMS se incluirá el propio número que ha llamado. En primer lugar modificamos el Manifest de la aplicación anterior para solicitar permisos para el envío de SMSs: <uses-permission android:name="android.permission.send_sms"/> En el fichero de código del broadcast ("MiBroadcastReceiver") añadimos la siguiente función para el envío de SMSs: public void send( String phonenumber, String message ) { SmsManager sms = SmsManager.getDefault(); sms.sendtextmessage( phonenumber, null, message, null, null ); Log.i( "SendSMS", "Enviando SMS a " + phonenumber + ": \"" + message + "\"" ); Por último modificamos el código del método "onreceive" para que además de mostrar el número de la llamada por el Log lo envíe por SMS. Para probar este ejercicio tenemos que abrir dos emuladores. En uno de ellos instalamos 3

el servicio y utilizamos el segundo emulador para realizar la llamada y comprobar que se recibe el SMS correctamente. Para realizar una llamada de un emulador a otro simplemente hay que marcar el número del puerto que aparece en el título de la ventana de cada emulador. 4. Arranque: Iniciar servicio al arrancar el móvil (0.6 puntos) En el proyecto android-av-onboot tenemos un servicio que se lanza al iniciar la actividad, mostrando Toasts del 1 al 5 y finalizando. Puedes comprobar ejecutando este proyecto como al arrancar o instalar la actividad se muestran estos Toast de aviso. Se pide modificar el código para que el servicio se inicie cuando el móvil haya terminado de arrancar. Para ello añadiremos el siguiente permiso al AndroidManifest.xml: <uses-permission android:name="android.permission.receive_boot_completed" /> También registraremos un receptor de broadcast MiBroadcastReceiver con un intent-filter para android.intent.action.boot_completed. A continuación implementaremos un BroadcastReceiver (llamado MiBroadcastReceiver) y en su método onreceive() introduciremos el código: if( "android.intent.action.boot_completed".equals(intent.getaction())) { ComponentName comp = new ComponentName(context.getPackageName(), MiServicio.class.getName()); ComponentName service = context.startservice( new Intent().setComponent(comp)); if (null == service){ Log.e(MiBroadcastReceiver.class.toString(), "Servicio no iniciado: " + comp.tostring()); else { Log.e(MiBroadcastReceiver.class.toString(), "Intent no esperado " + intent.tostring()); Tras ejecutar el proyecto desde Eclipse habrá que reiniciar el emulador para observar que el servicio se inicia al finalizar el arranque. El botón de apagar del emulador no funcionará, lo mejor es cerrar el emulador y volver a abrirlo. 5. Calculadora: Comunicación con el servicio (0.6 puntos) En este ejercicio vamos a practicar con los métodos de comunicación con un servicio. Para esto vamos a implementar una calculadora que a partir de un par de números de entrada realice su suma, resta, multiplicación o división utilizando un servicio. 4

En primer lugar creamos el proyecto y en la interfaz de la aplicación insertamos dos campos de edición (donde el usuario escribirá los operandos), un campo de texto vacío (donde se mostrará el resultado) y cuatro botones (para la suma, resta, multiplicación y división). A continuación añadiremos un servicio, llamado "MiServicioBind", en el cual implementaremos la clase onbind para poder realizar el binding. Además le añadiremos cuatro métodos públicos que a partir de dos números decimales devuelvan su suma, resta, multiplicación o división respectivamente. Además recordad que tenéis que añadir el servicio al Manifest del proyecto. En el código de la actividad principal, además de obtener referencias a los campos de edición y los botones e implementar sus métodos onclick, tendremos que atar el servicio que hemos creado. En los listener de los botones llamaremos al método correspondiente y mostraremos el resultado en el textview. Por último, tendremos que desatar el servicio al destruir la actividad. 5

6