Sensores

Ícono del HAL de sensores de Android

Los sensores de Android brindan a las aplicaciones acceso a los sensores físicos subyacentes de un dispositivo móvil. Son dispositivos virtuales que proporcionan datos y que se definen en sensors.h, la capa de abstracción de hardware (HAL) del sensor.

¿Qué son los sensores de Android?

Los sensores de Android son dispositivos virtuales que proporcionan datos provenientes de un conjunto de sensores físicos: acelerómetros, giroscopios, magnetómetros, barómetros, sensores de humedad, presión, luz, proximidad y ritmo cardíaco.

En la lista de dispositivos físicos que proporcionan datos, no se incluyen la cámara, el sensor de huellas dactilares, el micrófono ni la pantalla táctil. Estos dispositivos tienen su propio mecanismo de informes. La separación es arbitraria, pero, en general, los sensores de Android proporcionan datos de menor ancho de banda. Por ejemplo, “100 Hz x 3 canales” para un acelerómetro en comparación con “25 Hz x 8 MP x 3 canales” para una cámara o “44 kHz x 1 canal” para un micrófono.

Android no define cómo se conectan los diferentes sensores físicos al sistema en chip (SoC).

  • A menudo, los chips de sensores se conectan al SoC a través de un concentrador de sensores, lo que permite cierto monitoreo y procesamiento de los datos con bajo consumo de energía.
  • A menudo, se usa la interfaz de circuito integrado (I²C) o la interfaz de periférico en serie (SPI) como mecanismo de transporte.
  • Para reducir el consumo de energía, algunas arquitecturas son jerárquicas, con un procesamiento mínimo que se realiza en el circuito integrado específico de la aplicación (ASIC, como la detección de movimiento en el chip del acelerómetro) y más en un microcontrolador (como la detección de pasos en un centro de sensores).
  • El fabricante del dispositivo debe elegir una arquitectura en función de las características de precisión, potencia, precio y tamaño del paquete. Consulta Pila de sensores para obtener más información.
  • Las capacidades de procesamiento por lotes son una consideración importante para la optimización de la energía. Consulta Procesamiento por lotes para obtener más información.

Cada sensor de Android tiene un “tipo” que representa cómo se comporta el sensor y qué datos proporciona.

  • Los tipos de sensores oficiales de Android se definen en sensors.h con los nombres SENSOR_TYPE_…
    • La gran mayoría de los sensores tienen un tipo oficial.
    • Esos tipos se documentan en el SDK de Android.
    • El comportamiento de los sensores con esos tipos se prueba en el Conjunto de pruebas de compatibilidad (CTS) de Android.
  • Si un fabricante integra un nuevo tipo de sensor en un dispositivo Android, puede definir su propio tipo temporal para hacer referencia a él.
    • Estos tipos no están documentados, por lo que es poco probable que los desarrolladores de aplicaciones los usen, ya sea porque no los conocen o porque saben que rara vez están presentes (solo en algunos dispositivos de este fabricante específico).
    • El CTS no las prueba.
    • Una vez que Android defina un tipo de sensor oficial para este tipo de sensor, los fabricantes deben dejar de usar su propio tipo temporal y usar el tipo oficial. De esta manera, más desarrolladores de aplicaciones usarán el sensor.
  • La implementación del HAL informa la lista de todos los sensores presentes en el dispositivo.
    • Puede haber varios sensores del mismo tipo. Por ejemplo, dos sensores de proximidad o dos acelerómetros.
    • La gran mayoría de las aplicaciones solicitan solo un sensor de un tipo determinado. Por ejemplo, una aplicación que solicite el acelerómetro predeterminado obtendrá el primer acelerómetro de la lista.
    • A menudo, los sensores se definen por pares de activación y no activación, en los que ambos sensores comparten el mismo tipo, pero difieren en su característica de activación.

Los sensores de Android proporcionan datos como una serie de eventos de sensores.

Cada evento contiene lo siguiente:

La interpretación de los datos registrados depende del tipo de sensor. Consulta las definiciones de tipos de sensores para obtener detalles sobre los datos que se informan para cada tipo de sensor.

Documentación existente

Dirigido a desarrolladores

Dirigido a fabricantes

  • Descripción general
    • Esta página de Sensores y sus subpáginas
  • Capa de abstracción de hardware (HAL)
  • CDD de Android (Documento de definición de compatibilidad)
    • /compatibility/android-cdd.pdf
    • Consulta las secciones relacionadas con los sensores.
    • El CDD es flexible, por lo que satisfacer sus requisitos no es suficiente para garantizar sensores de alta calidad.