manejode sensores

8
EJERCICIO 4 DETECTANDO SENSORES EN ANDROID Andrés Gerardo Fuentes Covarrubias Sistemas Embebidos y Control

Upload: sbctecnologias-sa-de-cv

Post on 05-Aug-2015

42 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Manejode sensores

EJERCICIO 4

DETECTANDO SENSORES

EN ANDROID Andrés Gerardo Fuentes Covarrubias

Sistemas Embebidos y Control

Page 2: Manejode sensores

Descripción general

Android permite acceder a los sensores internos del

dispositivo a través de las clases:

Sensor, SensorEvent, SensorManager, y la

interfaz SensorEventListener, del

paquete android.hardware.

La clase Sensor acepta ocho tipos de sensores.

Aunque, los sensores disponibles varían en función del

dispositivo utilizado:

Giroscopio, 3 dimensiones, detectar giros. TYPE_GYROSCOPE

Orientación, 3 dimensiones, indicar dirección a la que apunta el

dispositivo. TYPE_ORIENTATION

Page 3: Manejode sensores

Ejercicio 4. Listar los sensores del

dispositivo

No todos los dispositivos disponen de los

mismos sensores. Por lo tanto, la primera

tarea consiste en averiguar los sensores

disponibles.

Page 4: Manejode sensores

Procedimiento/Metodología

1. Crea un nuevo proyecto con nombre Sensores.

2. Añade la siguiente propiedad al TextView de res/layout/main.xml:

android:id="@+id/salida"

3. Inserta este código en la actividad principal:

Page 5: Manejode sensores

Discusión (1)

El método comienza indicando el Layout de la actividad y obteniendo el TextView salida, donde mostraremos los resultados. A continuación vamos a vamos a utilizar el método getSystemService para solicitar al sistema servicios específicos. Este método pertenece a la clase Context (Como somos Activity también somos Context) y será muy utilizados para acceder a gran cantidad de servicios del sistema. Al indicar como parámetro SENSOR_SERVICE, indicamos que queremos utilizar los sensores. Lo haremos a través del objeto sensorManager. En primer lugar llamamos al método getSensorList() del objeto para que nos de listaSensores, una lista de objetos Sensor. La siguiente línea recorre todos los elementos de esta lista parar llamar a su método getName() para mostrar el nombre de sensor.

Page 6: Manejode sensores

Discusión (2)

Ejecuta el programa. Esta es una lista de los valores devueltos por el código anterior ejecutándose en el Galaxy ACE GT5830L:

BMA220

MMC314X

Mag & Acc Combo Orientation Sensor

TAOS

Gravity Sensor

Linear Acceleration Sensor

Rotation Vector Sensor

Page 7: Manejode sensores

Discusión (3)

El AK8976A es una combinación de acelerómetro de tres ejes y magnetómetro de

tres ejes. Combinando la lectura de los campos gravitatorio y magnético terrestres

proporciona también información de orientación. Incluye además un sensor interno

de temperatura, útil para comprobar si el móvil se está calentado demasiado.

Como hemos visto la case Sensor nos permite manipular los sensores. A

continuación se listan los métodos públicos de la clase Sensor:

La clase SensorManager tiene además tres métodos (getInclination,

getOrientation y getRotationMatrix), usados para calcular transformaciones

de coordenadas.

Page 8: Manejode sensores

Resultados