A partir de 27 de março de 2025, recomendamos usar android-latest-release
em vez de aosp-main
para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Modos de relatório
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Os sensores podem gerar eventos de maneiras diferentes, chamados de modos de relatório.
Cada tipo de sensor tem um e apenas um modo de relatório associado.
Existem quatro modos de relatório.
Contínuo
Os eventos são gerados a uma taxa constante definida pelo parâmetro sampling_period_ns
transmitido para a função batch
. Exemplos de sensores
que usam o modo de relatório contínuo são
acelerômetros
e giroscópios.
Ao mudar
Os eventos são gerados somente se os valores medidos mudarem.
Ativar o sensor no nível da HAL (chamando
activate(..., enable=1)
nele) também aciona um evento,
o que significa que a HAL precisa retornar um evento imediatamente quando um sensor de mudança
é ativado. Exemplos de sensores que usam o modo de relatório on-change são os tipos de sensor de contagem de passos, proximidade e frequência cardíaca.
O parâmetro
sampling_period_ns
transmitido para a função batch
é usado para definir o
tempo mínimo entre eventos consecutivos. Isso significa que um evento não pode ser
gerado até que sampling_period_ns
nanossegundos tenham decorrido desde
o último evento, mesmo que o valor tenha mudado desde então. Se o valor mudar,
um evento precisa ser gerado assim que sampling_period_ns
tiver
decorrido desde o último evento.
Por exemplo, suponha que:
- Ativamos o contador de passos com
sampling_period_ns = 10 * 10^9
(10 segundos).
- Andamos por 55 segundos e depois ficamos parados por um minuto.
- Os eventos são gerados a cada 10 segundos durante o primeiro
minuto (inclusive no tempo
t=0
devido à ativação
do sensor e t=60
segundos), para um total de sete
eventos. Nenhum evento é gerado no segundo minuto porque o valor
da contagem de passos não mudou após t=60
segundos.
One-shot
Após a detecção de um evento, o sensor se desativa e envia
um único evento pelo HAL. A ordem é importante para evitar disputas.
O sensor precisa ser desativado antes que o evento seja informado pelo
HAL. Nenhum outro evento é enviado até que o sensor seja reativado.
Movimento
significativo é um exemplo desse tipo de sensor.
Os sensores de disparo são chamados de sensores de disparo.
Os parâmetros sampling_period_ns
e max_report_latency_ns
transmitidos para a função batch
são ignorados. Os eventos
de eventos únicos não podem ser armazenados em FIFOs de hardware. Eles precisam
ser informados assim que forem gerados.
Especial
Consulte as descrições do tipo de sensor para saber quando os eventos são gerados.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Reporting modes\n\nSensors can generate events in different ways called reporting modes;\neach sensor type has one and only one reporting mode associated with it.\nFour reporting modes exist.\n\nContinuous\n----------\n\nEvents are generated at a constant rate defined by the\n[sampling_period_ns](/docs/core/interaction/sensors/batching#sampling_period_ns)\nparameter passed to the `batch` function. Example sensors\nusing the continuous reporting mode are\n[accelerometers](/docs/core/interaction/sensors/sensor-types#accelerometer)\nand [gyroscopes](/docs/core/interaction/sensors/sensor-types#gyroscope).\n\nOn-change\n---------\n\nEvents are generated only if the measured values have changed.\nActivating the sensor at the HAL level (calling\n`activate(..., enable=1)` on it) also triggers an event,\nmeaning the HAL must return an event immediately when an on-change sensor\nis activated. Example sensors using the on-change reporting mode are the\nstep counter, proximity, and heart rate sensor types.\n\nThe\n[sampling_period_ns](/docs/core/interaction/sensors/batching#sampling_period_ns)\nparameter passed to the `batch` function is used to set the\nminimum time between consecutive events, meaning an event shouldn't be\ngenerated until `sampling_period_ns` nanoseconds elapsed since\nthe last event, even if the value changed since then. If the value changed,\nan event must be generated as soon as `sampling_period_ns` has\nelapsed since the last event.\n\nFor example, suppose:\n\n- We activate the step counter with `sampling_period_ns = 10 * 10^9` (10 seconds).\n- We walk for 55 seconds, then stand still for one minute.\n- The events are generated about every 10 seconds during the first minute (including at time `t=0` because of the activation of the sensor, and `t=60` seconds), for a total of seven events. No event is generated in the second minute because the value of the step count didn't change after `t=60` seconds.\n\nOne-shot\n--------\n\nUpon detection of an event, the sensor deactivates itself and then sends\na single event through the HAL. Order matters to avoid race conditions.\n(The sensor must be deactivated before the event is reported through the\nHAL). No other event is sent until the sensor is reactivated.\n[Significant\nmotion](/docs/core/interaction/sensors/sensor-types#significant_motion) is an example of this kind of sensor.\n\nOne-shot sensors are sometimes referred to as trigger sensors.\n\nThe `sampling_period_ns` and `max_report_latency_ns`\nparameters passed to the `batch` function are ignored. Events\nfrom one-shot events cannot be stored in hardware FIFOs; the events must\nbe reported as soon as they are generated.\n\nSpecial\n-------\n\nSee the individual [sensor type\ndescriptions](/docs/core/interaction/sensors/sensor-types) for details on when the events are generated."]]