Usuario:ManuelRomero/DAW/moviles/NoTextingWD

De WikiEducator
Saltar a: navegación, buscar



Contestdor Automático

Componentes

Dos etiquetas

·         lMsg

·         lNuevaMsg

Caja de texto para cambiar el mensaje de respuesta y un botón para que el cambió tenga efecto

·         tNuevaMsg

·         bNuevaMsg

Objeto más especiales

Objeto que procesa el texto (Texting) y un objeto para almacenar la respuesta en la base de datos TinyDB

·         pMsg (procesa mensaje)

·         bDMsg(Base Datos Mensaje)

TextToSpeech es un objeto que lee el texto en voz alta, LocationSensor Para identificr la ubicción del teléfono

·         TTSPMsg      

·         LSUbicacion

1.2       Comportamiento

Contestar automáticamente la mensaje

Cuando el teléfono recibe un mensaje de texto se lanza el evento MessageReceived (Del objeto Texting)

Este evento tiene dos argumentos que le acompañan

1.      number numero de teléfono

2.      messageText el mensaje recibido

Con esto ya tenemos el teléfono al que queremos contestar y el mensaje que queremos que se lea en voz alta

Para enviar el mensaje tenemos de nuevo el objeto Texting   el método SendMessage,  previamente debemos indicar el número al que queremos enviar y el mensaje que queremos mandar  en las propiedades

·         PhoneNumber

·         Message


PracticaContestador1.png1.3       Modificar el mensaje

Lo que queremos es que cuando hagamos un click se cambie el mensaje que automáticamente enviamos

PracticaContestador2.png

Vemos  como de forma intuitiva cuando hacemos un click cambiamos la propieda text del lRespuesta al contenido de la propiedad text de la caja de texto.

1.4       Guardar la respuesta personalizada en la base de datos

ahora se trata de que la respuesta al mensaje no se pierda cada vez que apagamos el teléfono sino que se mantenga

El objeto TinyBD se encarga de guardar información el la BD de Android

Tenemos dos funciones principales: (Almacenar y recuperar)

·         StoreValue

·         GetValue

 

El comportamiento deseado es que cada vez que el usuario cambie el mensaje se almacene en la base de datos, y cada vez que se arranque la aplicación se lea de la base de datos el mensaje. Vamos a ello:


 

PracticaContestador3.pngObservar el tag. Es el nombre de campo para almacenar y recuperar la información. Para ponerlo debemos ir en la sección build-in a text y crear un elementos de texto.

1.5       Recuperar la respuesta personalizada

Queremos recuperar información cada vez  que se inicia la aplicación.

App cuenta con un bloque especial cada vez que se inicia  el programa

Screen.Initialize

En este caso debemos tener en cuenta varias situaciones que se pueden producir como que no haya información el la base de datos. vamos a realizar el proceso

Necesitamos crearnos una variable que inicialmente puede tener cualquier valor

PracticaContestador4.png

Vemos que lo que hacemos es recuperar el contenido de la base de datos y en caso de que haya valor se lo asignamos al label de respuesta y si no lo dejamos para que tome el valor por defecto que tengo en nuestra aplicación.

1.6       Leer en voz alta los mensajes recibidos

Este tipo de acciones las realiza los objetos TextToSpeech que explota la funcionalidad que tiene android para leer mensajes en voz alta

Este objeto tiene un método llamado Speek  y necesita un argumento que es el texto que queremos que lea

Ahora falta decir cuando queremos que lea. Cuando ocurra el evento de que hemos recibido un mensaje

Vamos a implementar los bloques

Recordemos que los objetos que permites gestionar el mensaje es texting

PracticaContestador5.png

Teníamos programado que cuando recibiéramos el mensaje contestara. Ahora vamos a añadir acciones para que lo lea en voz alta

 

Cuando recibamos el mensaje queremos hacer que lo lea y construimos el mensaje

PracticaContestador6.png

  • estos bloques los agregamos y nos queda el bloque completo

 

 

 

PracticaContestador7.png

 

 

1.7       Información sobre nuestra ubicación

Este tipo de funcionalidad es útil y a veces puede ser comprometida facilitar, pero vamos a usarla para el ejemplo que presentamos. Decir en qué posición estamos. Primero vamos a obtener esta información

Para ello usamos el componente LocationSensor el cual tiene la capacidad de interactuar con el GPS del teléfono

Este componente no siempre consigue detectar la ubicación. La aplicación debe responder al controlador de eventos locationChanged.n Cuando este evento ocurra guardaremos la infomación en una variable. Posteriormente incluiremos en el mensaje respuesta el valor de esta variable-

PracticaContestador8.png

 

De esta forma ya tenemos la información de nuestra ubicación en la variable  

 

1.8       Incluir la posición en el mensaje respuesta

Vamos a modificar el mensaje que hemos enviado incluyendo la información de la ubiación. Para ello hacemos un nuevo mensaje   Nosotros teníamos este bloque para construir el mensaje PracticaContestador9.png

  Ahora la parte de Message la vamos a modificar   PracticaContestador10.png   y el bloque final sería PracticaContestador11.png