Sensores

Ícone HAL dos 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 de fornecimento de dados definidos por sensores.h , o sensor Hardware Abstraction Layer (HAL).

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ômetros, sensores de umidade, pressão, luz, proximidade e frequência cardíaca.

Não estão incluídos na lista de dispositivos físicos que fornecem dados a câmera, o sensor de impressão digital, o microfone e a tela sensível ao toque. Esses dispositivos têm 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 “44 kHz 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).

  • Muitas vezes, os chips de sensores são conectados ao SoC por meio de um hub de sensores , permitindo algum monitoramento e processamento de dados de baixo consumo de energia.
  • Freqüentemente, o Circuito Integrado (I2C) ou a Interface Periférica Serial (SPI) são usados ​​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 passo em um hub de sensor ).
  • 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 obter mais informações.
  • Os recursos de lote são uma consideração importante para a otimização de energia. Consulte Lotes para obter mais informações.

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

  • Os tipos oficiais do Android Sensor são definidos em sensores.h sob os nomes SENSOR_TYPE_…
    • A grande maioria dos sensores tem um tipo de sensor oficial.
    • Esses tipos estão documentados no Android SDK.
    • O comportamento de sensores com esses tipos são testados no Android Compatibility Test Suite (CTS).
  • Se um fabricante integra um novo tipo de sensor em um dispositivo Android, o fabricante pode definir seu próprio tipo temporário para se referir a ele.
    • Esses tipos não são documentados, portanto, é improvável que os desenvolvedores de aplicativos os usem, porque não os conhecem ou sabem que raramente estão presentes (apenas em alguns dispositivos desse fabricante específico).
    • Eles não são testados pelo CTS.
    • Depois que o Android define um tipo de sensor oficial para esse tipo de sensor, os fabricantes devem parar de usar seu 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 é relatada 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 dos aplicativos solicita apenas um único sensor de um determinado tipo. Por exemplo, um aplicativo solicitando 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 os sensores compartilhando o mesmo tipo, mas diferindo por suas características de ativação.

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

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

Destinado a desenvolvedores

Direcionado para fabricantes