Sensores

Ícone do HAL de sensores do Android

Os sensores do Android dão aos aplicativos acesso aos sensores físicos subjacentes de um dispositivo móvel. Eles são dispositivos virtuais que fornecem dados definidos por sensors.h, a camada de abstração de hardware (HAL) do sensor.

O que são sensores do Android?

Os sensores do Android são dispositivos virtuais que fornecem dados provenientes de um conjunto de sensores físicos: acelerômetros, giroscópios, magnetômetros, barômetros, sensores de umidade, pressão, luz, proximidade e frequência cardíaca.

A câmera, o sensor de impressão digital, o microfone e a tela touchscreen não estão incluídos na lista de dispositivos físicos que fornecem dados. Esses dispositivos têm o próprio mecanismo de geração de relatórios. A separação é arbitrária, mas, em geral, os sensores do Android fornecem dados de largura de banda mais baixa. Por exemplo, "100 Hz x 3 canais" para um acelerômetro em comparação com "25 Hz x 8 MP x 3 canais" para uma câmera ou "44 kHz x 1 canal" para um microfone.

O Android não define como os diferentes sensores físicos são conectados ao system on chip (SoC).

  • Muitas vezes, os chips de sensores são conectados ao SoC por um hub de sensores, permitindo monitoramento e processamento de dados de baixo consumo de energia.
  • Muitas vezes, o circuito integrado (I2C) ou a interface periférica serial (SPI) é usado como mecanismo de transporte.
  • Para reduzir o consumo de energia, algumas arquiteturas são hierárquicas, com um processamento mínimo sendo feito no circuito integrado específico do aplicativo (ASIC, como a detecção de movimento no chip do acelerômetro), e mais é feito em um microcontrolador (como a detecção de passos em um hub de sensores).
  • Cabe ao fabricante do dispositivo escolher uma arquitetura com base nas características de precisão, potência, preço e tamanho do pacote. Consulte Pilha de sensores para mais informações.
  • Os recursos de lote são uma consideração importante para a otimização de energia. Consulte Processamento em lote para mais informações.

Cada sensor do Android tem um "tipo" que representa como o sensor se comporta e quais dados ele fornece.

  • Os tipos de sensor oficiais do Android são definidos em sensors.h com os nomes SENSOR_TYPE_…
    • A grande maioria dos sensores tem um tipo oficial.
    • Esses tipos estão documentados no SDK do Android.
    • O comportamento de sensores com esses tipos é testado no Teste de compatibilidade (CTS, na sigla em inglês) do Android.
  • Se um fabricante integrar um novo tipo de sensor a um dispositivo Android, ele poderá definir o próprio tipo temporário para se referir a ele.
    • Esses tipos não são documentados, então é improvável que os desenvolvedores de apps os usem, seja porque eles não sabem sobre eles ou sabem que eles raramente estão presentes (apenas em alguns dispositivos desse fabricante específico).
    • Elas não são testadas pelo CTS.
    • Quando o Android definir um tipo de sensor oficial para esse tipo de sensor, os fabricantes precisarão parar de usar o próprio tipo temporário e usar o tipo oficial. Dessa forma, o sensor será usado por mais desenvolvedores de aplicativos.
  • A lista de todos os sensores presentes no dispositivo é informada pela implementação do HAL.
    • Pode haver vários sensores do mesmo tipo. Por exemplo, dois sensores de proximidade ou dois acelerômetros.
    • A grande maioria dos aplicativos solicita apenas um único sensor de um determinado tipo. Por exemplo, um aplicativo que solicita o acelerômetro padrão vai receber o primeiro acelerômetro da lista.
    • Os sensores geralmente são definidos por pares de ativação e não ativação, ambos compartilhando o mesmo tipo, mas diferindo pela característica de ativação.

Os sensores do Android fornecem dados como uma série de eventos do sensor.

Cada evento contém:

A interpretação dos dados informados depende do tipo de sensor. Consulte as definições do tipo de sensor para saber quais dados são informados para cada tipo de sensor.

Documentação atual

Direcionado a desenvolvedores

Segmentação para fabricantes

  • Visão geral
    • Esta página Sensors e as subpáginas dela.
  • Camada de abstração de hardware (HAL)
  • Documento de definição de compatibilidade (CDD) do Android
    • /compatibility/android-cdd.pdf
    • Consulte as seções relacionadas aos sensores.
    • O CDD é leniente, então atender aos requisitos do CDD não é suficiente para garantir sensores de alta qualidade.