SlideShare une entreprise Scribd logo
1  sur  68
PROGRAMACIÓN MULTIMEDIA
Y
DISPOSITIVOS MÓVILES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
COMENZANDO A
PROGRAMAR
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGOS Y
COMUNICACIONES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES
Bajo esta denominación se engloba
un conjunto de dispositivos con los
que podremos obtener información
del mundo exterior (no se incluye
la cámara, el micrófono o el GPS).
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
CAMPO MAGNÉTICO
VECTOR DE ROTACIÓN
GRAVEDAD
ORIENTACIÓN
GIROSCOPIO
SENSORES
ACELERÓMETRO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
HUMEDAD RELATIVA
TEMPERATURA AMBIENTAL
TEMPERATURA INTERNA
PRESIÓN ATMOFÉRICA
PROXIMIDAD
SENSORES
LUZ AMBIENTAL
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.hardware.SensorEvent;
import android.hardware.SensorEvenListener;
SENSORES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DETECTAR SENSORES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: LISTADO
salida = (TextView) findViewById(R.id.texto2);
SensorManager sensorManager = (SensorManager)
getSystemService(SENSOR_SERVICE);
List<Sensor> listaSensores = sensorManager.
getSensorList(Sensor.TYPE_ALL);
for(Sensor sensor: listaSensores) {
log(sensor.getName());
}
private void log(String string) {salida.append(string + "n");}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: EXISTENCIA
salida = (TextView) findViewById(R.id.texto2);
SensorManager sensorManager = (SensorManager)
getSystemService(SENSOR_SERVICE);
luz= sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
if(luz != null){
EXISTE SENSOR DE LUZ
}else{
NO EXISTE SENSOR DE LUZ
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
public int getVersion()
Public String getVendor()
public int getType()
public float getResolution()
public float getPower()
public String getName()
SENSORES
public float getMaximumRange()
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
ARQUITECTURA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
onSensorChanged()
SENSORES: EVENTOS
onAccuracyChanged()
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: EVENTOS
onAccuracyChanged()
se invoca cuando cambia la
precisión del objeto sensor (low,
medium, high, unreliable).
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: EVENTOS
onSensorChanged()
se invoca cuando el sensor
tiene un nuevo valor.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DEFINIMOS UN OBJETO
SENSORMANAGER
OBTENEMOS EL SENSOR
DESEADO
GETDEFAULSENSOR
REGISTRAMOS EL
SENSOR PARA QUE MIDA
REGISTERLISTENER
IMPLEMENTAMOS LA
INTERFAZ
SENSOREVENLISTENER
onAccuracyChanged() onSensorChanged()
SENSORES: CONSTRUCCIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSOR_DELAY_UI
SENSOR_DELAY_NORMAL
SENSOR_DELAY_GAME
SENSORES: CONSTRUCCIÓN
LISTENER
SENSOR_DELAY_FASTER
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
CONSEJOS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NO SON ÚTILES EN EL EMULADOR
HAY QUE DESACTIVAR ESCUCHAS SI NO SE USAN
SI SE EJECUTAN EN EL UI EL CALLBACK DEBE SER BAJO
ES CONVENIENTE AJUSTAR FRECUENCIA DE RECEPCIÓN
SENSORES: CONSEJOS
COMPRUEBA SIEMPRE LA DISPONIBILIDAD
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
ACELERÓMETRO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ACELERÓMETRO
la aceleración es una magnitud
vectorial que nos indica el cambio
de velocidad por unidad de tiempo.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ACELERÓMETRO
+ Y
+ Z
- X - Z
- Y
+ X
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ACELERÓMETRO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ACELERÓMETRO
ESCUCHA
public class Actividad extends AppCompatActivity implements
SensorEventListener {
CÓDIGO
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
GRAVEDAD ESTANDAR
ACELERACIÓN MÁXIMA
MODULO DE ACELERACIÓN
ACELERACIÓN EJE Z
ACELERACIÓN EJE Y
SENSORES: ACELERÓMETRO
ACELERACIÓN EJE X
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
onSensorChanged()
SENSORES: EVENTOS
onAccuracyChanged()
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ACELERÓMETRO
salida = (TextView) findViewById(R.id.texto2);
SensorManager sensorManager = (SensorManager)
getSystemService(SENSOR_SERVICE);
Sensor accelerometro =
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(
this,accelerometro, SensorManager.SENSOR_DELAY_FASTEST);
new MiAsyncTask().execute();
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ACELERÓMETRO
@Override
public void onAccuracyChanged(Sensor arg0, int arg1) { }
@Override
public void onSensorChanged(SensorEvent event) {
x = event.values[0];
y = event.values[1];
z = event.values[2];
a = Math.sqrt(x * x + y * y + z * z);
if (a > amax) amax = a;
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ACELERÓMETRO
( EJE X )2 + ( EJE Y )2 + ( EJE Z )2MÓDULO =
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: BACKGROUND
HILO PRINCIPAL
HILO SEGUNDO PLANO
onPreExecute() onProgresUpdate() onPostExecute()onProgresUpdate()
PublishProgress() PublishProgress()
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ACELERÓMETRO
class MiAsyncTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... arg0) {
while (true) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
contador++;
publishProgress();
}
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ACELERÓMETRO
@Override
protected void onProgressUpdate(Void... progress) {
tvax.setText("" + x);
tvay.setText("" + y);
tvaz.setText("" + z);
tva.setText("" + a);
tvaMax.setText("" + amax);
tvG.setText("" + gravedad);
tvG.append("n" + contador);
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
GIROSCOPIO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: GIROSCOPIO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: GIROSCOPIO
El giroscopio mide la velocidad de
rotación del dispositivo alrededor
de los ejes X , Y , Z
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: GIROSCOPIO
salida = (TextView) findViewById(R.id.texto2);
SensorManager sensorManager = (SensorManager)
getSystemService(SENSOR_SERVICE);
Sensor gyro =
sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
sensorManager.registerListener(
this,gyro , SensorManager.SENSOR_DELAY_FASTEST);
new MiAsyncTask().execute();
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
MAGNETÓMETRO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: MAGNETÓMETRO
El magnetómetro mide la
intensidad del campo magnético de
la tierra a lo largo de los ejes X , Y , Z
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: MAGNETÓMETRO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: MAGNETÓMETRO
double campoTierraMax=SensorManager.MAGNETIC_FIELD_EARTH_MAX;
double campoTierraMin=SensorManager.MAGNETIC_FIELD_EARTH_MIN;
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: MAGNETÓMETRO
salida = (TextView) findViewById(R.id.texto2);
SensorManager sensorManager = (SensorManager)
getSystemService(SENSOR_SERVICE);
Sensor magneto=
sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
sensorManager.registerListener(
this,magneto, SensorManager.SENSOR_DELAY_NORMAL);
new MiAsyncTask().execute();
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: MAGNETÓMETRO
protected void onPostExecute(Void result){
super.onPostExecute(result);
Context context=getApplicationContext();
Toast.makeText(context,"CERRADO PROGRAMA DE MAGNETÓMETRO",
1).show();
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSOR DE ORIENTACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ORIENTACIÓN
El sensor de orientación ofrece la
posibilidad de acceder a orientación
del móvil en los tres ejes espaciales.
Y detecta un cambio en la
orientación del dispositivo
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ORIENTACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ORIENTACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
PITCH: LA ORIENTACIÓN EN GRADOS RESPESCTO AL EJE Y.
ROLL: LA ORIENTACIÓN EN GRADOS RESPECTO AL EJE Z.
HEADING: LA ORIENTACIÓN EN GRADOS DESDE EL EJE X, O NORTE
SENSORES: ORIENTACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ORIENTACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ORIENTACIÓN
El uso de este sensor se encuentra
desaprobado, ya que no proporciona una
buena precisión. Se recomienda combinar
los resultados obtenidos por el
acelerómetro y la brújula.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ORIENTACIÓN
salida = (TextView) findViewById(R.id.texto2);
SensorManager sensorManager = (SensorManager)
getSystemService(SENSOR_SERVICE);
Sensor sensor=
sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
sensorManager.registerListener(
this,sensor , SensorManager.SENSOR_DELAY_NORMAL);
new MiAsyncTask().execute();
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ORIENTACIÓN
if (azimut < 22) orientacion="NORTE";
else if( azimut < 67) orientacion= "NORESTE";
else if( azimut < 112 ) orientacion="ESTE";
else if( azimut < 157 ) orientacion="SURESTE";
else if( azimut < 202) orientacion="SUR";
else if( azimut < 247) orientacion="SUROESTE";
else if( azimut < 292) orientacion="OESTE";
else if( azimut < 337) orientacion="NOROESTE";
else orientacion="NORTE";
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ORIENTACIÓN
if (vertical < -50) orientacion="VERTICAL ARRIBA";
if (vertical > 50) orientacion="VERTICAL ABAJO";
if (lateral > 50) orientacion="LATERAL IZQUIERDA";
if (lateral < -50) orientacion="LATERAL DERECHA";
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSOR DE PROXIMIDAD
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: PROXIMIDAD
El sensor de proximidad detecta la
distancia del dispositivo con
respecto a otro objeto.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: PROXIMIDAD
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: PROXIMIDAD
salida = (TextView) findViewById(R.id.texto2);
SensorManager sensorManager = (SensorManager)
getSystemService(SENSOR_SERVICE);
Sensor sensorProximo=
sensorManager.getDefaultSensor(Sensor. TYPE_PROXIMITY);
sensorManager.registerListener(
this,sensorProximo,SensorManager.SENSOR_DELAY_FASTET);
new MiAsyncTask().execute();
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: PROXIMIDAD
public void onSensorChanged(SensorEvent event) {
distancia= event.values[0];
contador++;
if (distancia < 1) proximidad="CERCA";
else proximidad="LEJOS";
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSOR DE ILUMINACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ILUMINACIÓN
Detecta la iluminación del entorno y
ajustar automáticamente el brillo de
la pantalla al nivel adecuado.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ILUMINACIÓN
El lux es una unidad derivada,
basada en el lumen, que a su vez es
una unidad derivada basada en la
candela.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ILUMINACIÓN
La diferencia entre el lux y el lumen
consiste en que el lux toma en
cuenta la superficie sobre la que el
flujo luminoso se distribuye.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ILUMINACIÓN
salida = (TextView) findViewById(R.id.texto2);
SensorManager sensorManager = (SensorManager)
getSystemService(SENSOR_SERVICE);
Sensor sensorLuz=
sensorManager.getDefaultSensor(Sensor. TYPE_LIGHT);
sensorManager.registerListener(
this,sensorLuz, SensorManager.SENSOR_DELAY_FASTET);
new MiAsyncTask().execute();
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SENSORES: ILUMINACIÓN
public void onSensorChanged(SensorEvent event) {
luz= event.values[0];
contador++;
if (luz < 100) luminosidad="OSCURO";
else if (luz < 2000) luminosidad="LUZ NORMAL";
else if (luz < 6000) luminosidad="BRILLANTE";
else luminosidad="MUCHA LUZ";
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
PROGRAMACIÓN MULTIMEDIA
Y
DISPOSITIVOS MÓVILES
Programación sensores móviles

Contenu connexe

Tendances

INTRODUCCIÓN A LAS FUNCIONES LÓGICAS BÁSICAS
INTRODUCCIÓN A LAS FUNCIONES LÓGICAS BÁSICASINTRODUCCIÓN A LAS FUNCIONES LÓGICAS BÁSICAS
INTRODUCCIÓN A LAS FUNCIONES LÓGICAS BÁSICASAlan EG
 
Sesion multiplexores y demultiplexores
Sesion  multiplexores y demultiplexores Sesion  multiplexores y demultiplexores
Sesion multiplexores y demultiplexores Marco Antonio
 
Herramientas de Autor Libres o Gratuitas para elaborar material educativo
Herramientas de Autor Libres o Gratuitas para elaborar material educativoHerramientas de Autor Libres o Gratuitas para elaborar material educativo
Herramientas de Autor Libres o Gratuitas para elaborar material educativoUnicaucaCPE
 
Unidad 2 teorías funcionalistas
Unidad 2   teorías funcionalistasUnidad 2   teorías funcionalistas
Unidad 2 teorías funcionalistasAdriel Patrón
 
Exposicion mcluhan final
Exposicion mcluhan finalExposicion mcluhan final
Exposicion mcluhan finalMartha Guarin
 
Entorno de la Opinion publica
Entorno de la Opinion publica Entorno de la Opinion publica
Entorno de la Opinion publica marijimenez21
 
1 informe (multimedia)
1 informe (multimedia)1 informe (multimedia)
1 informe (multimedia)CRISTIAN
 
Contenedores Swing en Netbeans
Contenedores Swing en NetbeansContenedores Swing en Netbeans
Contenedores Swing en NetbeansMarly Encina
 
Crear Abrir y Eliminar Archivos y Carpetas
Crear Abrir y Eliminar Archivos y CarpetasCrear Abrir y Eliminar Archivos y Carpetas
Crear Abrir y Eliminar Archivos y Carpetas303127575
 

Tendances (16)

Convergencia Digital
Convergencia DigitalConvergencia Digital
Convergencia Digital
 
INTRODUCCIÓN A LAS FUNCIONES LÓGICAS BÁSICAS
INTRODUCCIÓN A LAS FUNCIONES LÓGICAS BÁSICASINTRODUCCIÓN A LAS FUNCIONES LÓGICAS BÁSICAS
INTRODUCCIÓN A LAS FUNCIONES LÓGICAS BÁSICAS
 
Comunicación Digital
Comunicación DigitalComunicación Digital
Comunicación Digital
 
Sesion multiplexores y demultiplexores
Sesion  multiplexores y demultiplexores Sesion  multiplexores y demultiplexores
Sesion multiplexores y demultiplexores
 
Herramientas de Autor Libres o Gratuitas para elaborar material educativo
Herramientas de Autor Libres o Gratuitas para elaborar material educativoHerramientas de Autor Libres o Gratuitas para elaborar material educativo
Herramientas de Autor Libres o Gratuitas para elaborar material educativo
 
Sistema de comunicación global
Sistema de comunicación globalSistema de comunicación global
Sistema de comunicación global
 
Unidad 2 teorías funcionalistas
Unidad 2   teorías funcionalistasUnidad 2   teorías funcionalistas
Unidad 2 teorías funcionalistas
 
Arduino: Practicas con Arduino
Arduino: Practicas con ArduinoArduino: Practicas con Arduino
Arduino: Practicas con Arduino
 
Mapa conceptual 1. manuel castells.
Mapa conceptual 1. manuel castells.Mapa conceptual 1. manuel castells.
Mapa conceptual 1. manuel castells.
 
Exposicion mcluhan final
Exposicion mcluhan finalExposicion mcluhan final
Exposicion mcluhan final
 
Entorno de la Opinion publica
Entorno de la Opinion publica Entorno de la Opinion publica
Entorno de la Opinion publica
 
Comunidades virtuales
Comunidades virtualesComunidades virtuales
Comunidades virtuales
 
1 informe (multimedia)
1 informe (multimedia)1 informe (multimedia)
1 informe (multimedia)
 
Contenedores Swing en Netbeans
Contenedores Swing en NetbeansContenedores Swing en Netbeans
Contenedores Swing en Netbeans
 
Proyecto Arduino y Proteus
Proyecto Arduino y ProteusProyecto Arduino y Proteus
Proyecto Arduino y Proteus
 
Crear Abrir y Eliminar Archivos y Carpetas
Crear Abrir y Eliminar Archivos y CarpetasCrear Abrir y Eliminar Archivos y Carpetas
Crear Abrir y Eliminar Archivos y Carpetas
 

Similaire à Programación sensores móviles

PROGRAMACIÓN ANDROID: MULTIMEDIA - LOS SONIDOS Y EL VIDEO
PROGRAMACIÓN ANDROID: MULTIMEDIA - LOS SONIDOS Y EL VIDEOPROGRAMACIÓN ANDROID: MULTIMEDIA - LOS SONIDOS Y EL VIDEO
PROGRAMACIÓN ANDROID: MULTIMEDIA - LOS SONIDOS Y EL VIDEOJacinto Cabrera Rodríguez
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP GRAFICOS
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP GRAFICOSPROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP GRAFICOS
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP GRAFICOSJacinto Cabrera Rodríguez
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENESPROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENESJacinto Cabrera Rodríguez
 
DISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONES
DISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONESDISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONES
DISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONESJacinto Cabrera Rodríguez
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENESPROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENESJacinto Cabrera Rodríguez
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENESPROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENESJacinto Cabrera Rodríguez
 
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONESDISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONESJacinto Cabrera Rodríguez
 

Similaire à Programación sensores móviles (20)

DISPOSITIVOS MÓVILES: LA CLASE ACTIVITY
DISPOSITIVOS MÓVILES: LA CLASE ACTIVITYDISPOSITIVOS MÓVILES: LA CLASE ACTIVITY
DISPOSITIVOS MÓVILES: LA CLASE ACTIVITY
 
DISPOSITIVOS MÓVILES: GRIDVIEW - SPINNER
DISPOSITIVOS MÓVILES: GRIDVIEW - SPINNERDISPOSITIVOS MÓVILES: GRIDVIEW - SPINNER
DISPOSITIVOS MÓVILES: GRIDVIEW - SPINNER
 
INSTALACIÓN ANDROID STUDIO 1
INSTALACIÓN ANDROID STUDIO 1INSTALACIÓN ANDROID STUDIO 1
INSTALACIÓN ANDROID STUDIO 1
 
DISPOSITIVOS MÓVILES TEMA 01
DISPOSITIVOS MÓVILES TEMA 01DISPOSITIVOS MÓVILES TEMA 01
DISPOSITIVOS MÓVILES TEMA 01
 
DISPOSITIVOS MÓVILES: BLOQUE 1
DISPOSITIVOS MÓVILES: BLOQUE 1DISPOSITIVOS MÓVILES: BLOQUE 1
DISPOSITIVOS MÓVILES: BLOQUE 1
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - LOS SONIDOS Y EL VIDEO
PROGRAMACIÓN ANDROID: MULTIMEDIA - LOS SONIDOS Y EL VIDEOPROGRAMACIÓN ANDROID: MULTIMEDIA - LOS SONIDOS Y EL VIDEO
PROGRAMACIÓN ANDROID: MULTIMEDIA - LOS SONIDOS Y EL VIDEO
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP GRAFICOS
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP GRAFICOSPROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP GRAFICOS
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP GRAFICOS
 
DISPOSITIVOS MÓVILES: CONTROLES BÁSICOS
DISPOSITIVOS MÓVILES: CONTROLES BÁSICOSDISPOSITIVOS MÓVILES: CONTROLES BÁSICOS
DISPOSITIVOS MÓVILES: CONTROLES BÁSICOS
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENESPROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENES
 
DISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONES
DISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONESDISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONES
DISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONES
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENESPROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENES
 
INSTALACIÓN ANDROID STUDIO 2
INSTALACIÓN ANDROID STUDIO 2INSTALACIÓN ANDROID STUDIO 2
INSTALACIÓN ANDROID STUDIO 2
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - EL VIDEO
PROGRAMACIÓN ANDROID: MULTIMEDIA - EL VIDEOPROGRAMACIÓN ANDROID: MULTIMEDIA - EL VIDEO
PROGRAMACIÓN ANDROID: MULTIMEDIA - EL VIDEO
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENESPROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - EJEMPLOS DE APP IMAGENES
 
DISPOSITIVOS MÓVILES: FRAGMENTOS
DISPOSITIVOS MÓVILES: FRAGMENTOSDISPOSITIVOS MÓVILES: FRAGMENTOS
DISPOSITIVOS MÓVILES: FRAGMENTOS
 
DISPOSITIVOS MÓVILES: LAYOUTS
DISPOSITIVOS MÓVILES: LAYOUTSDISPOSITIVOS MÓVILES: LAYOUTS
DISPOSITIVOS MÓVILES: LAYOUTS
 
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONESDISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
 
DISPOSITIVOS MÓVILES: GIT - GITHUB
DISPOSITIVOS MÓVILES: GIT - GITHUBDISPOSITIVOS MÓVILES: GIT - GITHUB
DISPOSITIVOS MÓVILES: GIT - GITHUB
 
ANDROID; CONTROL DE VERSIONES
ANDROID; CONTROL DE VERSIONESANDROID; CONTROL DE VERSIONES
ANDROID; CONTROL DE VERSIONES
 
CONECTIVIDAD SATELITAL VSAT - PERUEDUCA
CONECTIVIDAD SATELITAL VSAT - PERUEDUCACONECTIVIDAD SATELITAL VSAT - PERUEDUCA
CONECTIVIDAD SATELITAL VSAT - PERUEDUCA
 

Plus de Jacinto Cabrera Rodríguez

Plus de Jacinto Cabrera Rodríguez (20)

REDES: DUCTUS Y CANALETAS II
REDES: DUCTUS Y CANALETAS IIREDES: DUCTUS Y CANALETAS II
REDES: DUCTUS Y CANALETAS II
 
OTRAS UNIDADES DE ALMACENAMIENTO
OTRAS UNIDADES DE ALMACENAMIENTOOTRAS UNIDADES DE ALMACENAMIENTO
OTRAS UNIDADES DE ALMACENAMIENTO
 
LAS FUENTES EN LA HISTORIA DEL ARTE
LAS FUENTES EN LA HISTORIA DEL ARTELAS FUENTES EN LA HISTORIA DEL ARTE
LAS FUENTES EN LA HISTORIA DEL ARTE
 
TOULOUSE LAUTREC
TOULOUSE LAUTRECTOULOUSE LAUTREC
TOULOUSE LAUTREC
 
PRÁCTICA MANEJO DE MEMORIA
PRÁCTICA MANEJO DE MEMORIAPRÁCTICA MANEJO DE MEMORIA
PRÁCTICA MANEJO DE MEMORIA
 
DISPOSITIVOS MÓVILES: MATERIAL DESIGN II
DISPOSITIVOS MÓVILES: MATERIAL DESIGN IIDISPOSITIVOS MÓVILES: MATERIAL DESIGN II
DISPOSITIVOS MÓVILES: MATERIAL DESIGN II
 
ZÓCALOS DE TARJETAS
ZÓCALOS DE TARJETASZÓCALOS DE TARJETAS
ZÓCALOS DE TARJETAS
 
ZÓCALOS DE PROCESADOR
ZÓCALOS DE PROCESADORZÓCALOS DE PROCESADOR
ZÓCALOS DE PROCESADOR
 
TIPOS DE MÓDULOS DE MEMORIA
TIPOS DE MÓDULOS DE MEMORIATIPOS DE MÓDULOS DE MEMORIA
TIPOS DE MÓDULOS DE MEMORIA
 
CARCASAS DE ORDENADOR
CARCASAS DE ORDENADORCARCASAS DE ORDENADOR
CARCASAS DE ORDENADOR
 
TIPOS DE TORNILLOS
TIPOS DE TORNILLOSTIPOS DE TORNILLOS
TIPOS DE TORNILLOS
 
PRACTICAS DE REDES: PRÁCTICA 26
PRACTICAS DE REDES: PRÁCTICA 26PRACTICAS DE REDES: PRÁCTICA 26
PRACTICAS DE REDES: PRÁCTICA 26
 
PRACTICAS DE REDES: PRÁCTICA 25
PRACTICAS DE REDES: PRÁCTICA 25PRACTICAS DE REDES: PRÁCTICA 25
PRACTICAS DE REDES: PRÁCTICA 25
 
PRACTICAS DE REDES: PRÁCTICA 24
PRACTICAS DE REDES: PRÁCTICA 24PRACTICAS DE REDES: PRÁCTICA 24
PRACTICAS DE REDES: PRÁCTICA 24
 
PRACTICAS DE REDES: PRÁCTICA 23
PRACTICAS DE REDES: PRÁCTICA 23PRACTICAS DE REDES: PRÁCTICA 23
PRACTICAS DE REDES: PRÁCTICA 23
 
REDES: TOMAS DE DATOS
REDES: TOMAS DE DATOSREDES: TOMAS DE DATOS
REDES: TOMAS DE DATOS
 
PRACTICAS DE REDES: PRÁCTICA 22
PRACTICAS DE REDES: PRÁCTICA 22PRACTICAS DE REDES: PRÁCTICA 22
PRACTICAS DE REDES: PRÁCTICA 22
 
PRACTICAS DE REDES: PRÁCTICA 21
PRACTICAS DE REDES: PRÁCTICA 21PRACTICAS DE REDES: PRÁCTICA 21
PRACTICAS DE REDES: PRÁCTICA 21
 
PRACTICAS DE REDES: PRÁCTICA 20
PRACTICAS DE REDES: PRÁCTICA 20PRACTICAS DE REDES: PRÁCTICA 20
PRACTICAS DE REDES: PRÁCTICA 20
 
PRACTICAS DE REDES: PRÁCTICA 19
PRACTICAS DE REDES: PRÁCTICA 19PRACTICAS DE REDES: PRÁCTICA 19
PRACTICAS DE REDES: PRÁCTICA 19
 

Programación sensores móviles

  • 1.
  • 3.
  • 4. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA COMENZANDO A PROGRAMAR
  • 5. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGOS Y COMUNICACIONES
  • 6. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES
  • 7. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES Bajo esta denominación se engloba un conjunto de dispositivos con los que podremos obtener información del mundo exterior (no se incluye la cámara, el micrófono o el GPS).
  • 8. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA CAMPO MAGNÉTICO VECTOR DE ROTACIÓN GRAVEDAD ORIENTACIÓN GIROSCOPIO SENSORES ACELERÓMETRO
  • 9. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA HUMEDAD RELATIVA TEMPERATURA AMBIENTAL TEMPERATURA INTERNA PRESIÓN ATMOFÉRICA PROXIMIDAD SENSORES LUZ AMBIENTAL
  • 10. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA import android.hardware.Sensor; import android.hardware.SensorManager; import android.hardware.SensorEvent; import android.hardware.SensorEvenListener; SENSORES
  • 11. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DETECTAR SENSORES
  • 12. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: LISTADO salida = (TextView) findViewById(R.id.texto2); SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); List<Sensor> listaSensores = sensorManager. getSensorList(Sensor.TYPE_ALL); for(Sensor sensor: listaSensores) { log(sensor.getName()); } private void log(String string) {salida.append(string + "n");}
  • 13. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: EXISTENCIA salida = (TextView) findViewById(R.id.texto2); SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); luz= sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); if(luz != null){ EXISTE SENSOR DE LUZ }else{ NO EXISTE SENSOR DE LUZ }
  • 14. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA public int getVersion() Public String getVendor() public int getType() public float getResolution() public float getPower() public String getName() SENSORES public float getMaximumRange()
  • 15. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA ARQUITECTURA
  • 16. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA onSensorChanged() SENSORES: EVENTOS onAccuracyChanged()
  • 17. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: EVENTOS onAccuracyChanged() se invoca cuando cambia la precisión del objeto sensor (low, medium, high, unreliable).
  • 18. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: EVENTOS onSensorChanged() se invoca cuando el sensor tiene un nuevo valor.
  • 19. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DEFINIMOS UN OBJETO SENSORMANAGER OBTENEMOS EL SENSOR DESEADO GETDEFAULSENSOR REGISTRAMOS EL SENSOR PARA QUE MIDA REGISTERLISTENER IMPLEMENTAMOS LA INTERFAZ SENSOREVENLISTENER onAccuracyChanged() onSensorChanged() SENSORES: CONSTRUCCIÓN
  • 20. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSOR_DELAY_UI SENSOR_DELAY_NORMAL SENSOR_DELAY_GAME SENSORES: CONSTRUCCIÓN LISTENER SENSOR_DELAY_FASTER
  • 21. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA CONSEJOS
  • 22. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NO SON ÚTILES EN EL EMULADOR HAY QUE DESACTIVAR ESCUCHAS SI NO SE USAN SI SE EJECUTAN EN EL UI EL CALLBACK DEBE SER BAJO ES CONVENIENTE AJUSTAR FRECUENCIA DE RECEPCIÓN SENSORES: CONSEJOS COMPRUEBA SIEMPRE LA DISPONIBILIDAD
  • 23. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA ACELERÓMETRO
  • 24. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ACELERÓMETRO la aceleración es una magnitud vectorial que nos indica el cambio de velocidad por unidad de tiempo.
  • 25. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ACELERÓMETRO + Y + Z - X - Z - Y + X
  • 26. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ACELERÓMETRO
  • 27. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ACELERÓMETRO ESCUCHA public class Actividad extends AppCompatActivity implements SensorEventListener { CÓDIGO }
  • 28. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA GRAVEDAD ESTANDAR ACELERACIÓN MÁXIMA MODULO DE ACELERACIÓN ACELERACIÓN EJE Z ACELERACIÓN EJE Y SENSORES: ACELERÓMETRO ACELERACIÓN EJE X
  • 29. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA onSensorChanged() SENSORES: EVENTOS onAccuracyChanged()
  • 30. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ACELERÓMETRO salida = (TextView) findViewById(R.id.texto2); SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); Sensor accelerometro = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); sensorManager.registerListener( this,accelerometro, SensorManager.SENSOR_DELAY_FASTEST); new MiAsyncTask().execute();
  • 31. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ACELERÓMETRO @Override public void onAccuracyChanged(Sensor arg0, int arg1) { } @Override public void onSensorChanged(SensorEvent event) { x = event.values[0]; y = event.values[1]; z = event.values[2]; a = Math.sqrt(x * x + y * y + z * z); if (a > amax) amax = a; }
  • 32. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ACELERÓMETRO ( EJE X )2 + ( EJE Y )2 + ( EJE Z )2MÓDULO =
  • 33. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: BACKGROUND HILO PRINCIPAL HILO SEGUNDO PLANO onPreExecute() onProgresUpdate() onPostExecute()onProgresUpdate() PublishProgress() PublishProgress()
  • 34. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ACELERÓMETRO class MiAsyncTask extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... arg0) { while (true) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } contador++; publishProgress(); } }
  • 35. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ACELERÓMETRO @Override protected void onProgressUpdate(Void... progress) { tvax.setText("" + x); tvay.setText("" + y); tvaz.setText("" + z); tva.setText("" + a); tvaMax.setText("" + amax); tvG.setText("" + gravedad); tvG.append("n" + contador); }
  • 36. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA GIROSCOPIO
  • 37. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: GIROSCOPIO
  • 38. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: GIROSCOPIO El giroscopio mide la velocidad de rotación del dispositivo alrededor de los ejes X , Y , Z
  • 39. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: GIROSCOPIO salida = (TextView) findViewById(R.id.texto2); SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); Sensor gyro = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE); sensorManager.registerListener( this,gyro , SensorManager.SENSOR_DELAY_FASTEST); new MiAsyncTask().execute();
  • 40. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA MAGNETÓMETRO
  • 41. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: MAGNETÓMETRO El magnetómetro mide la intensidad del campo magnético de la tierra a lo largo de los ejes X , Y , Z
  • 42. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: MAGNETÓMETRO
  • 43. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: MAGNETÓMETRO double campoTierraMax=SensorManager.MAGNETIC_FIELD_EARTH_MAX; double campoTierraMin=SensorManager.MAGNETIC_FIELD_EARTH_MIN;
  • 44. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: MAGNETÓMETRO salida = (TextView) findViewById(R.id.texto2); SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); Sensor magneto= sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); sensorManager.registerListener( this,magneto, SensorManager.SENSOR_DELAY_NORMAL); new MiAsyncTask().execute();
  • 45. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: MAGNETÓMETRO protected void onPostExecute(Void result){ super.onPostExecute(result); Context context=getApplicationContext(); Toast.makeText(context,"CERRADO PROGRAMA DE MAGNETÓMETRO", 1).show(); }
  • 46. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSOR DE ORIENTACIÓN
  • 47. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ORIENTACIÓN El sensor de orientación ofrece la posibilidad de acceder a orientación del móvil en los tres ejes espaciales. Y detecta un cambio en la orientación del dispositivo
  • 48. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ORIENTACIÓN
  • 49. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ORIENTACIÓN
  • 50. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA PITCH: LA ORIENTACIÓN EN GRADOS RESPESCTO AL EJE Y. ROLL: LA ORIENTACIÓN EN GRADOS RESPECTO AL EJE Z. HEADING: LA ORIENTACIÓN EN GRADOS DESDE EL EJE X, O NORTE SENSORES: ORIENTACIÓN
  • 51. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ORIENTACIÓN
  • 52. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ORIENTACIÓN El uso de este sensor se encuentra desaprobado, ya que no proporciona una buena precisión. Se recomienda combinar los resultados obtenidos por el acelerómetro y la brújula.
  • 53. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ORIENTACIÓN salida = (TextView) findViewById(R.id.texto2); SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); Sensor sensor= sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); sensorManager.registerListener( this,sensor , SensorManager.SENSOR_DELAY_NORMAL); new MiAsyncTask().execute();
  • 54. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ORIENTACIÓN if (azimut < 22) orientacion="NORTE"; else if( azimut < 67) orientacion= "NORESTE"; else if( azimut < 112 ) orientacion="ESTE"; else if( azimut < 157 ) orientacion="SURESTE"; else if( azimut < 202) orientacion="SUR"; else if( azimut < 247) orientacion="SUROESTE"; else if( azimut < 292) orientacion="OESTE"; else if( azimut < 337) orientacion="NOROESTE"; else orientacion="NORTE";
  • 55. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ORIENTACIÓN if (vertical < -50) orientacion="VERTICAL ARRIBA"; if (vertical > 50) orientacion="VERTICAL ABAJO"; if (lateral > 50) orientacion="LATERAL IZQUIERDA"; if (lateral < -50) orientacion="LATERAL DERECHA";
  • 56. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSOR DE PROXIMIDAD
  • 57. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: PROXIMIDAD El sensor de proximidad detecta la distancia del dispositivo con respecto a otro objeto.
  • 58. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: PROXIMIDAD
  • 59. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: PROXIMIDAD salida = (TextView) findViewById(R.id.texto2); SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); Sensor sensorProximo= sensorManager.getDefaultSensor(Sensor. TYPE_PROXIMITY); sensorManager.registerListener( this,sensorProximo,SensorManager.SENSOR_DELAY_FASTET); new MiAsyncTask().execute();
  • 60. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: PROXIMIDAD public void onSensorChanged(SensorEvent event) { distancia= event.values[0]; contador++; if (distancia < 1) proximidad="CERCA"; else proximidad="LEJOS";
  • 61. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSOR DE ILUMINACIÓN
  • 62. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ILUMINACIÓN Detecta la iluminación del entorno y ajustar automáticamente el brillo de la pantalla al nivel adecuado.
  • 63. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ILUMINACIÓN El lux es una unidad derivada, basada en el lumen, que a su vez es una unidad derivada basada en la candela.
  • 64. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ILUMINACIÓN La diferencia entre el lux y el lumen consiste en que el lux toma en cuenta la superficie sobre la que el flujo luminoso se distribuye.
  • 65. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ILUMINACIÓN salida = (TextView) findViewById(R.id.texto2); SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); Sensor sensorLuz= sensorManager.getDefaultSensor(Sensor. TYPE_LIGHT); sensorManager.registerListener( this,sensorLuz, SensorManager.SENSOR_DELAY_FASTET); new MiAsyncTask().execute();
  • 66. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SENSORES: ILUMINACIÓN public void onSensorChanged(SensorEvent event) { luz= event.values[0]; contador++; if (luz < 100) luminosidad="OSCURO"; else if (luz < 2000) luminosidad="LUZ NORMAL"; else if (luz < 6000) luminosidad="BRILLANTE"; else luminosidad="MUCHA LUZ";
  • 67. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES