Sensores

Ícone HAL de sensores Android

Os sensores 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 sensores.h , a Camada de Abstração de Hardware (HAL) do sensor.

O que são sensores Android?

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

Não incluídos na lista de dispositivos físicos que fornecem dados estão câmera, sensor de impressão digital, microfone e tela sensível ao toque. Esses dispositivos possuem seu próprio mecanismo de relatório; a separação é arbitrária, mas em geral, os sensores Android fornecem dados de largura de banda menor. Por exemplo, “100 Hz x 3 canais” para um acelerômetro versus “25 Hz x 8 MP x 3 canais” para uma câmera ou “44kHz x 1 canal” para um microfone.

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

  • Freqüentemente, os chips sensores são conectados ao SoC por meio de um hub de sensor , permitindo algum monitoramento e processamento de dados de baixa potência.
  • Freqüentemente, o Circuito Interintegrado (I2C) ou Interface Periférica Serial (SPI) é usado como mecanismo de transporte.
  • Para reduzir o consumo de energia, algumas arquiteturas são hierárquicas, com algum processamento mínimo sendo feito no circuito integrado específico da aplicação (ASIC - como detecção de movimento no chip do acelerômetro), e mais é feito em um microcontrolador (como detecção de passos em um hub de sensor ).
  • Cabe ao fabricante do dispositivo escolher uma arquitetura baseada nas características de precisão, potência, preço e tamanho do pacote. Consulte Pilha de sensores para obter mais informações.
  • Os recursos de lote são uma consideração importante para a otimização de energia. Consulte Lote para obter mais informações.

Cada sensor Android possui um “tipo” que representa como o sensor se comporta e quais dados ele fornece.

  • Os tipos oficiais de sensores Android são definidos emsensor.h sob os nomes SENSOR_TYPE_…
    • A grande maioria dos sensores possui um tipo de sensor oficial.
    • Esses tipos estão documentados no Android SDK.
    • O comportamento dos sensores com esses tipos é testado no Android Compatibility Test Suite (CTS).
  • Se um fabricante integrar um novo tipo de sensor em um dispositivo Android, o fabricante poderá definir seu próprio tipo temporário para se referir a ele.
    • Esses tipos não estão documentados, portanto é improvável que os desenvolvedores de aplicativos os utilizem, seja porque não os conhecem ou porque sabem que raramente estão presentes (apenas em alguns dispositivos deste fabricante específico).
    • Eles não são testados pelo CTS.
    • Depois que o Android definir um tipo de sensor oficial para esse tipo de sensor, os fabricantes deverão parar de usar seu próprio tipo temporário e usar o tipo oficial. Dessa forma, o sensor será utilizado por mais desenvolvedores de aplicativos.
  • A lista de todos os sensores presentes no dispositivo é informada pela implementação HAL.
    • Pode haver vários sensores do mesmo tipo. Por exemplo, dois sensores de proximidade ou dois acelerômetros.
    • A grande maioria das aplicações solicita apenas um único sensor de um determinado tipo. Por exemplo, um aplicativo que solicita o acelerômetro padrão obterá o primeiro acelerômetro da lista.
    • Os sensores são frequentemente definidos por pares de ativação e não ativação , ambos sensores compartilhando o mesmo tipo, mas diferindo em suas características de ativação.

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

Cada evento contém:

A interpretação dos dados reportados depende do tipo de sensor. Consulte as definições de tipo de sensor para obter detalhes sobre quais dados são relatados para cada tipo de sensor.

Documentação existente

Direcionado a desenvolvedores

Direcionado a fabricantes

  • Visão geral
    • Esta página Sensores e suas subpáginas.
  • Camada de abstração de hardware (HAL)
  • Android CDD (documento de definição de compatibilidade)
    • /compatibilidade/android-cdd.pdf
    • Consulte as seções relativas aos sensores.
    • O CDD é tolerante, portanto satisfazer os requisitos do CDD não é suficiente para garantir sensores de alta qualidade.