INTRODUCCIÓN AL MARCO DE SENSORES DE ANDROID

Los sensores son los dispositivos de entrada más novedosos que incorpora Android y con ellos podremos implementar formas atractivas de interacción con el usuario.
Android ofrece soporte para sensores de hardware entre estos están las siguientes clases e interfaces:

●SensorManager

●Sensor

●SensorEventListener

●SensorEvent

Si su aplicación utiliza sensores, puede poseer cualquiera de las siguientes dos opciones:

●Specify the sensor in the Android Manifest

●Check for the sensor at runtime

Para que su aplicación utilice un sensor, agregale la declaración <uses-feature> en el Android Manifest por ejemplo:
<uses-feature android:name="android.hardware.sensor.compass"android:required="true"/>

Si desea que su aplicación utilice la brújula, pero no requiere que funcione, debe establecer Android: required = "false"de lo contrario la aplicación no estará disponible en la Google Play.

Los sensores se agrupan en tres categorías:

●Sensores de movimiento

●Sensores ambientales

●Sensores de posición

Tipos de Sensores soportados en la plataforma Android:

SENSORES DETECTAN USO
TYPE_ACCELEROMETER Detección de movimiento incluyendo gravedad Se utiliza para determinar shake, tilt,etc.
TYPE_AMBIENT_TEMPERATURE Mide la habitación ambiente temperatura Se utiliza para determinar las temperatura
TYPE_GRAVITY Mide la fuerza de la gravedad en los tres ejes Utilizado para la detección de movimiento
TYPE_GYROSCOPE Mide la rotación en los tres ejes Se utiliza para determinar giro en giro.
TYPE_LIGHT Mide el nivel de luz Se utiliza para configurar la pantalla brillo
TYPE_LINEAR_ACCELERATION Detección de movimiento excluyendo gravedad Se utiliza para determinar la aceleración
TYPE_MAGNETIC_FIELD Mide el campo geomagnético Se utiliza para crear una brújula o determinar el cojinete
TYPE_PRESSURE Asegura la presión del aire Utilizado para barómetro
TYPE_PROXIMITY Mide el objeto relativo a lapantalla Se utiliza para determinar si el Dispositivo se mantiene en contra de la durante una llamada telefónica
TYPE_RELATIVE_HUMIDITY Mide la humedad relativa Se utiliza para determinar el punto de rocío y humedad
TYPE_ROTATION_VECTOR Mide la orientación del dispositivo Se utiliza para detectar movimiento y rotación

Existen dos sensores adicionales TYPE_ORIENTATION y TYPE_TEMPERATURE los cuales han sido reemplazados por nuevos sensores.

Actividad: Para esta actividad haremos la demostración de recuperación de una lista de sensores disponibles observen la siguiente imagen:
Empezemos Cree un nuevo proyecto en Android Studio y asígnele el nombre ListDeviceSensors. Para realizar la comprobación de esta actividad puedes hacer uso de tu teléfono celular, tablet o emulador desde su computadora.

En primer lugar, consultaremos la lista de sensores disponibles, luego mostraremos los resultados en un ListView.
A continuación siga los pasos detallados a seguir:

1.Nos dirigimos al archivo activity_main.xml y reemplazamos el <TextView> que se genera automáticamente al crear el proyecto por el siguiente método:

<ListView

android:id="@+id/list"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

2.Ahora nos dirigimos abrie el MainActivity.java agregaremos las siguientes líneas de código al método onCreate() que ya existe:

ListViewlistView= (ListView)findViewById(R.id.list);

ListsensorList=newArrayList<String>();

List<Sensor>sensors= ((SensorManager) getSystemService(

Context.SENSOR_SERVICE)).getSensorList(Sensor.TYPE_ALL);

for(Sensor sensor :sensors) {

sensorList.add(sensor.getName()); }

ListAdaptersensorAdapter=newArrayAdapter<String>(this,

android.R.layout.simple_list_item_1,sensorList);

listView.setAdapter(sensorAdapter);}

3.Ahora comprobaremos la aplicación en nuestro dispositivo o emulador:

Como se hace: La siguiente línea de código es responsable de obtener la lista de sensores disponibles:

List<Sensor>sensors= ((SensorManager) getSystemService Context.SENSOR_SERVICE)).getSensorList(Sensor.TYPE_ALL).

Ahora podemos observar que recuperamos una lista de objetos Sensor. En este ejemplo sólo obtenemos el nombre del sensor para mostrar enel ListView, pero existen otras propiedades disponibles como la sección para una lista completa.
Además podemos observar en la imagen que un dispositivo puede tener múltiples sensores del mismo tipo si está buscando un sensor en específico, puede llamarlo con uno de las Constantes de la tabla que se muestra anteriormente.

Para este caso, veremos el sensores del acelerómetro disponibles llamando el siguiente método:List<Sensor>sensors = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
Si no estámos buscando una lista de sensores, pero necesitamos trabajar con un sensor específico, podemos comprobar si hay un sensor predeterminado usando este código:
if(sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) !=

null){

//Sensor is available - do something here

results matching ""

    No results matching ""