Idioma

SensorEvent.Values Propriedade

Definição

O comprimento e o #values values conteúdo da matriz dependem de qual android.hardware.Sensor sensor tipo está sendo monitorado (consulte também SensorEvent uma definição do sistema de coordenadas usado).

[Android.Runtime.Register("values")]
public System.Collections.Generic.IList<float>? Values { get; set; }
[<Android.Runtime.Register("values")>]
member this.Values : System.Collections.Generic.IList<single> with get, set

Valor da propriedade

Atributos

Comentários

O comprimento e o #values values conteúdo da matriz dependem de qual android.hardware.Sensor sensor tipo está sendo monitorado (consulte também SensorEvent uma definição do sistema de coordenadas usado).

<h4>android.hardware.Sensor#TYPE_ACCELEROMETER Sensor.TYPE_ACCELEROMETER:</h4> Todos os valores estão em unidades SI (m/s^2)

<ul>li values[0]: Aceleração menos Gx no eixo <x /li><valores>[1]: Aceleração menos Giro no eixo <y /li><> valores[2]: Aceleração menos Gz no eixo <z /li></ul><>

Um sensor desse tipo mede a aceleração aplicada ao dispositivo (<b Ad</b>>). Conceitualmente, ele faz isso medindo as forças aplicadas ao próprio sensor (<b>Fs</b>) usando a relação:

<b><center>Ad = - ∑ Fs/mass</center></b>

Em particular, a força da gravidade está sempre influenciando a aceleração medida:

<b><center>Ad = -g - ∑ F/mass</center></b>

Por esse motivo, quando o dispositivo está sentado em uma tabela (e obviamente não está acelerando), o acelerômetro lê uma magnitude de <b>g</b> = 9,81 m/s^2

Da mesma forma, quando o dispositivo está em queda livre e, portanto, acelerando perigosamente em direção ao solo a 9,81 m/s^2, seu acelerômetro lê uma magnitude de 0 m/s^2.

Deve ser evidente que, para medir a aceleração real do dispositivo, a contribuição da força da gravidade deve ser eliminada. Isso pode ser feito aplicando um filtro de passagem alta . Por outro lado, um filtro de passagem baixa pode ser usado para isolar a força da gravidade.

public void onSensorChanged(SensorEvent event)
                {
                     // alpha is calculated as t / (t + dT)
                     // with t, the low-pass filter's time-constant
                     // and dT, the event delivery rate

                     final float alpha = 0.8;

                     gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
                     gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
                     gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];

                     linear_acceleration[0] = event.values[0] - gravity[0];
                     linear_acceleration[1] = event.values[1] - gravity[1];
                     linear_acceleration[2] = event.values[2] - gravity[2];
                }

<u>Exemplos</u>: <ul><li>Quando o dispositivo está plano em uma tabela e é empurrado para o lado esquerdo em direção à direita, o valor de aceleração x é positivo.</li>

<li>Quando o dispositivo está fixo em uma tabela, o valor de aceleração é +9,81, que corresponde à aceleração do dispositivo (0 m/s^2) menos a força da gravidade (-9,81 m/s^2).</li>

<li>Quando o dispositivo está plano em uma tabela e é empurrado para o céu com uma aceleração de A m/s^2, o valor de aceleração é igual a A+9.81 que corresponde à aceleração do dispositivo (+A m/s^2) menos a força da gravidade (-9,81 m/s^2).</li></ul>

<h4>android.hardware.Sensor#TYPE_MAGNETIC_FIELD Sensor.TYPE_MAGNETIC_FIELD:</h4> Todos os valores estão em micro-Tesla (uT) e medem o campo magnético ambiente no eixo X, Y e Z.

<h4>android.hardware.Sensor#TYPE_GYROSCOPE Sensor.TYPE_GYROSCOPE: </h4> Todos os valores estão em radianos/segundos e medem a taxa de rotação em torno do eixo X, Y e Z locais do dispositivo. O sistema de coordenadas é o mesmo usado para o sensor de aceleração. A rotação é positiva na direção no sentido anti-horário. Ou seja, um observador olhando de algum local positivo no eixo x, y ou z em um dispositivo posicionado na origem relataria rotação positiva se o dispositivo parecesse estar girando no sentido anti-horário. Observe que essa é a definição matemática padrão de rotação positiva e não concorda com a definição de roll fornecida anteriormente. <ul>li values[0]: velocidade angular em torno dos valores x-axis </li<>li>[1]: velocidade angular em torno dos valores de eixo <y /li<>li>[2]: velocidade angular em torno do eixo <z /li<>/ul><>

Normalmente, a saída do giroscópio é integrada ao longo do tempo para calcular uma rotação que descreve a alteração de ângulos ao longo da etapa de tempo, por exemplo:

private static final float NS2S = 1.0f / 1000000000.0f;
                private final float[] deltaRotationVector = new float[4]();
                private float timestamp;

                public void onSensorChanged(SensorEvent event) {
                     // This time step's delta rotation to be multiplied by the current rotation
                     // after computing it from the gyro sample data.
                     if (timestamp != 0) {
                         final float dT = (event.timestamp - timestamp) * NS2S;
                         // Axis of the rotation sample, not normalized yet.
                         float axisX = event.values[0];
                         float axisY = event.values[1];
                         float axisZ = event.values[2];

                         // Calculate the angular speed of the sample
                         float omegaMagnitude = sqrt(axisX*axisX + axisY*axisY + axisZ*axisZ);

                         // Normalize the rotation vector if it's big enough to get the axis
                         if (omegaMagnitude > EPSILON) {
                             axisX /= omegaMagnitude;
                             axisY /= omegaMagnitude;
                             axisZ /= omegaMagnitude;
                         }

                         // Integrate around this axis with the angular speed by the time step
                         // in order to get a delta rotation from this sample over the time step
                         // We will convert this axis-angle representation of the delta rotation
                         // into a quaternion before turning it into the rotation matrix.
                         float thetaOverTwo = omegaMagnitude * dT / 2.0f;
                         float sinThetaOverTwo = sin(thetaOverTwo);
                         float cosThetaOverTwo = cos(thetaOverTwo);
                         deltaRotationVector[0] = sinThetaOverTwo * axisX;
                         deltaRotationVector[1] = sinThetaOverTwo * axisY;
                         deltaRotationVector[2] = sinThetaOverTwo * axisZ;
                         deltaRotationVector[3] = cosThetaOverTwo;
                     }
                     timestamp = event.timestamp;
                     float[] deltaRotationMatrix = new float[9];
                     SensorManager.getRotationMatrixFromVector(deltaRotationMatrix, deltaRotationVector);
                     // User code should concatenate the delta rotation we computed with the current
                     // rotation in order to get the updated rotation.
                     // rotationCurrent = rotationCurrent * deltaRotationMatrix;
                }

Na prática, o ruído e o deslocamento do giroscópio introduzirão alguns erros que precisam ser compensados. Isso geralmente é feito usando as informações de outros sensores, mas está além do escopo deste documento.

<h4>android.hardware.Sensor#TYPE_LIGHT Sensor.TYPE_LIGHT:</h4><ul><li>values[0]: Nível de luz ambiente em unidades <de lux si /li></ul>

<h4>android.hardware.Sensor#TYPE_PRESSURE Sensor.TYPE_PRESSURE:</h4><ul><li>values[0]: pressão atmosférica em hPa (millibar) </li></ul>

<h4>android.hardware.Sensor#TYPE_PROXIMITY Sensor.TYPE_PROXIMITY: </h4>

<ul><li>values[0]: distância do sensor de proximidade medida em centímetros </li></ul>

<b>Observação:</b> Alguns sensores de proximidade dão suporte apenas a uma medida binária próxima ou distante . Nesse caso, o sensor deve relatar seu android.hardware.Sensor#getMaximumRange() maximum range valor no estado distante e um valor menor no estado próximo .

<h4>android.hardware.Sensor#TYPE_GRAVITY Sensor.TYPE_GRAVITY:</h4>

Um vetor tridimensional que indica a direção e a magnitude da gravidade. As unidades são m/s^2. O sistema de coordenadas é o mesmo usado pelo sensor de aceleração.

<b>Observação:</b> Quando o dispositivo está em repouso, a saída do sensor de gravidade deve ser idêntica à do acelerômetro.

<h4>android.hardware.Sensor#TYPE_LINEAR_ACCELERATION Sensor.TYPE_LINEAR_ACCELERATION: </h4> Um vetor tridimensional que indica aceleração ao longo de cada eixo do dispositivo, não incluindo a gravidade. Todos os valores têm unidades de m/s^2. O sistema de coordenadas é o mesmo usado pelo sensor de aceleração.

A saída dos sensores de acelerômetro, gravidade e aceleração linear deve obedecer à seguinte relação:

<ul>acceleration = gravity + linear-acceleration</ul>

<h4>android.hardware.Sensor#TYPE_ROTATION_VECTOR Sensor.TYPE_ROTATION_VECTOR:</h4>

O vetor de rotação representa a orientação do dispositivo como uma combinação de um ângulo e um eixo, no qual o dispositivo tem girado através de um ângulo &#952 em torno de um eixo < x, y, z.

Os três elementos do vetor de rotação são < x*sin(&#952/2), y*sin(&#952/2), z*sin(&#952/2),de modo que a magnitude do vetor de rotação seja igual a sin(&#952/2) e a direção do vetor de rotação seja igual à direção do eixo de rotação.

/pOs três elementos do vetor de rotação são iguais aos três últimos componentes de uma unidade b/b quaternion < cos(&#952/2), x*sin(&#952/2), y*sin(&#952/2), z*sin(&#952/2)./p

Os elementos do vetor de rotação são sem unidade. O eixo x,y e z são definidos da mesma forma que o sensor de aceleração.

O sistema de coordenadas de referência é definido como uma base ortomal direta, em que: </p>

<ul><li>X é definido como o produto <vetor b>Y.Z</b> (é tangencial para o chão no local atual do dispositivo e aproximadamente aponta para Leste).</li><li>Y é tangencial para o chão na localização atual do dispositivo e aponta para o norte magnético.</li><li>Z aponta para o céu e é perpendicular ao chão.</li></ul>

<center><img src=".. /.. /.. /images/axis_globe.png" alt="Diagrama do sistema de coordenadas do mundo". border="0" /></center>

<ul>li values[0]: x*sin(θ/2) </li><li> values[1]: y*sin(θ/2) </li<>li> values[2]: z*sin(&>#952/2) </li><li> values[3]: cos(θ/2) </li<>li> values[4]: precisão estimada do título (em radianos) (-1 se não estiver disponível)</li></ul><>

valores[3], originalmente opcionais, sempre estarão presentes do SDK Nível 18 em diante. values[4] é um novo valor que foi adicionado no Nível 18 do SDK.

<h4>android.hardware.Sensor#TYPE_ORIENTATION Sensor.TYPE_ORIENTATION:</h4> Todos os valores são ângulos em graus.

<ul><li> values[0]: Azimuth, ângulo entre a direção norte magnética e o eixo y, em torno do eixo z (0 a 359). 0=Norte, 90=Leste, 180=Sul, 270=Oeste </p>

values[1]: Pitch, rotação em torno do eixo x (-180 a 180), com valores positivos quando o eixo z move <b>em direção</b> ao eixo y.

values[2]: Roll, rotation around the y-axis (-90 to 90) increasing as the device moves clockwise.

</ul>

<b>Observação:</b> Essa definição é diferente de <b>yaw, pitch e roll</b> usado na aviação em que o eixo X está ao longo do lado longo do plano (cauda a nariz).

<b>Observação:</b> Esse tipo de sensor existe por motivos herdados, use android.hardware.Sensor#TYPE_ROTATION_VECTOR rotation vector sensor type e android.hardware.SensorManager#getRotationMatrix getRotationMatrix() em conjunto com android.hardware.SensorManager#remapCoordinateSystem remapCoordinateSystem() e android.hardware.SensorManager#getOrientation getOrientation() compute esses valores.

<b>Observação importante:</b> Por motivos históricos, o ângulo de rolagem é positivo no sentido horário (matematicamente falando, deve ser positivo na direção anti-horário).

<h4>android.hardware.Sensor#TYPE_RELATIVE_HUMIDITY Sensor.TYPE_RELATIVE_HUMIDITY:</h4><ul><li> values[0]: umidade relativa do ar ambiente em porcentagem </li></ul>

Quando a umidade relativa do ar ambiente e a temperatura ambiente são medidas, o ponto de reboque e a umidade absoluta podem ser calculados.

<u>Dew Point</u>

O ponto de orvalho é a temperatura para a qual uma determinada parcela de ar deve ser resfriada, sob pressão barométrica constante, para que o vapor de água se condensar na água.

<centro>

ln(RH/100%) + m&#183;t/(T<sub>n</sub>+t)
            t<sub>d</sub>(t,RH) = T<sub>n</sub> &#183; ------------------------------
                            m - [ln(RH/100%) + m&#183;t/(T<sub>n</sub>+t)]

</center><dl><dt>t<sub>d</sub></dt><dd>dew point temperature in ° C</dd><dt>t</dt><dd>temperatura real em ° C</dd><dt>RH</dt><dd>umidade relativa real em %</dd><dt>m</dt<>dd>17.62</dd><dt>T<sub>n</sub></dt><dd>243.12 ° C</dd></dl>

por exemplo:

h = Math.log(rh / 100.0) + (17.62 * t) / (243.12 + t);
            td = 243.12 * h / (17.62 - h);

<u>Umidade< Absoluta/u>

A umidade absoluta é a massa de vapor de água em um volume específico de ar seco. A unidade é g/m<sup>3</sup>.

<centro>

RH/100%&#183;A&#183;exp(m&#183;t/(T<sub>n</sub>+t))
            d<sub>v</sub>(t,RH) = 216.7 &#183; -------------------------
                                      273.15 + t

</center><dl><dt>d<sub>v</sub></dt><dd>umidade absoluta em g/m<sup>3</sup></dd><dt>t</dt><dd>temperatura real em ° C</dd><dt>RH</dt><dd>umidade relativa real em %</dd><dt>m</dt<>dd>17.62</dd><dt>T<sub>n</sub></dt><dd>243.12 ° C</dd><dt>A</dt><dd>6.112 hPa</dd></dl>

por exemplo:

dv = 216.7 *
            (rh / 100.0 * 6.112 * Math.exp(17.62 * t / (243.12 + t)) / (273.15 + t));

<h4>android.hardware.Sensor#TYPE_AMBIENT_TEMPERATURE Sensor.TYPE_AMBIENT_TEMPERATURE: </h4>

<ul><li> values[0]: Temperatura ambiente (ambiente) em graus Celsius</li></ul>

<h4>android.hardware.Sensor#TYPE_MAGNETIC_FIELD_UNCALIBRATED Sensor.TYPE_MAGNETIC_FIELD_UNCALIBRATED:</h4> Semelhante a android.hardware.Sensor#TYPE_MAGNETIC_FIELD, mas a calibragem de ferro rígido é relatada separadamente em vez de ser incluída na medida. A calibragem de fábrica e a compensação de temperatura ainda serão aplicadas à medida "não recalibrado". Pressupõe que o campo magnético é devido aos pólos da Terra é evitado.

A matriz de valores é mostrada abaixo: <ul><li> values[0] = x_uncalib </li<>li> values[1] = y_uncalib </li><li> values[2] = z_uncalib </li<>li> values[3] = x_bias </li><li> values[4] = y_bias </li>>< values[5] = z_bias </li></ul>

x_uncalib, y_uncalib, z_uncalib são o campo magnético medido em eixos X, Y, Z. As calibrações de ferro macio e temperatura são aplicadas. Mas a calibragem de ferro rígido não é aplicada. Os valores estão em micro-Tesla (uT).

x_bias, y_bias, z_bias dar o viés de ferro estimado em eixos X, Y, Z. Cada campo é um componente da calibragem de ferro rígido estimada. Os valores estão em micro-Tesla (uT).

Ferro duro – Essas distorções surgem devido ao ferro magnetizado, aço ou ímãs permanentes no dispositivo. Ferro macio - Essas distorções surgem devido à interação com o campo magnético da Terra.

<h4>android.hardware.Sensor#TYPE_GAME_ROTATION_VECTOR Sensor.TYPE_GAME_ROTATION_VECTOR:</h4> Idêntico à android.hardware.Sensor#TYPE_ROTATION_VECTOR exceção de que ele não usa o campo geomagnético. Portanto, o eixo Y não aponta para o norte, mas, em vez disso, para alguma outra referência, essa referência tem permissão para descompassar pela mesma ordem de magnitude que o giroscópio descompasso ao redor do eixo Z.

No caso ideal, um telefone girado e retornando para a mesma orientação do mundo real relatará o mesmo vetor de rotação de jogo (sem usar o campo geomagnético da Terra). No entanto, a orientação pode derivar um pouco ao longo do tempo. Consulte android.hardware.Sensor#TYPE_ROTATION_VECTOR uma descrição detalhada dos valores. Esse sensor não terá o valor estimado de precisão do título.

<h4>android.hardware.Sensor#TYPE_GYROSCOPE_UNCALIBRATED Sensor.TYPE_GYROSCOPE_UNCALIBRATED:</h4> Todos os valores estão em radianos/segundos e medem a taxa de rotação em torno do eixo X, Y e Z. Uma estimativa da descompasso em cada eixo também é relatada.

Nenhuma compensação de gyro-drift é executada. A calibragem de fábrica e a compensação de temperatura ainda são aplicadas à taxa de rotação (velocidades angulares).

O sistema de coordenadas é o mesmo usado para a android.hardware.Sensor#TYPE_ACCELEROMETER Rotação é positivo na direção anti-horário (regra à direita). Ou seja, um observador olhando de algum local positivo no eixo x, y ou z em um dispositivo posicionado na origem relataria rotação positiva se o dispositivo parecesse estar girando no sentido anti-horário. O intervalo seria de pelo menos 17,45 rad/s (ou seja: ~1000 deg/s). <ul>li values[0] : velocidade angular (compensação de descompasso w/o) em torno do eixo X em valores rad/s </li<>li>[1] : velocidade angular (compensação de descompasso do w/o) em torno do eixo Y em rad/s </li<>li> values[2] : velocidade angular (compensação de descompasso w/o) em torno do eixo Z em valores rad/s </li<>li>[3] : descompasso estimado em torno do eixo X em valores rad/s </li<>li>[4] :>< descompasso estimado em torno do eixo Y em valores rad/s </li><li>[5] : descompasso estimado em torno do eixo Z em rad/s </li></ul>

<b>Dica pro:</b> Sempre use o comprimento da matriz de valores ao executar operações nela. Em versões anteriores, isso costumava ser sempre 3, que foi alterado agora.

<h4>android.hardware.Sensor#TYPE_POSE_6DOF Sensor.TYPE_POSE_6DOF:</h4>

Um evento TYPE_POSE_6DOF consiste em uma rotação expressa como um quatérnio e uma tradução expressa em unidades si. O evento também contém uma rotação delta e uma tradução que mostram como a pose do dispositivo foi alterada desde a pose numerada da sequência anterior. O evento usa os eixos do Sensor Android canhão.

<ul>li values[0]: x*sin(θ/2) </li><li> values[1]: y*sin(θ/2) </li><values>[2]: z*sin(θ/2) </li<>li> values[3]: cos(θ/2) </li><>

<li> values[4]: tradução ao longo do eixo x de uma origem arbitrária. </li><li> values[5]: tradução ao longo do eixo y de uma origem arbitrária. </li><li> values[6]: tradução ao longo do eixo z de uma origem arbitrária. </li>

<li> values[7]: Rotação de quatérnio delta x*sin(θ/2) </li<>li> values[8]: Rotação de quatérnio delta y*sin(θ/2) </li<>li> values[9]: rotação de quatérnio delta z*sin(θ/2) </li<>li> values[10]: Delta quaternion rotation cos(θ/2) </li>

<li> values[11]: tradução delta ao longo do eixo x. </li><li> values[12]: tradução delta ao longo do eixo y. </li><li> values[13]: tradução delta ao longo do eixo z. </li>

<li> values[14]: número <de sequência /li>

</ul>

<h4>android.hardware.Sensor#TYPE_STATIONARY_DETECT Sensor.TYPE_STATIONARY_DETECT:</h4>

Um evento TYPE_STATIONARY_DETECT será produzido se o dispositivo estiver parado por pelo menos 5 segundos com uma latência máxima de 5 segundos adicionais. ou seja: pode levar de 5 a 10 segundos para que o dispositivo esteja em repouso para disparar esse evento.

O único valor permitido é 1,0.

<ul><li> values[0]: 1.0 </li></ul>

<h4>android.hardware.Sensor#TYPE_MOTION_DETECT Sensor.TYPE_MOTION_DETECT:</h4>

Um evento TYPE_MOTION_DETECT será produzido se o dispositivo estiver em movimento por pelo menos 5 segundos com uma latência máxima de 5 segundos adicionais. ou seja: pode levar de 5 a 10 segundos para que o dispositivo esteja em repouso para disparar esse evento.

O único valor permitido é 1,0.

<ul><li> values[0]: 1.0 </li></ul>

<h4>android.hardware.Sensor#TYPE_STEP_COUNTER Sensor.TYPE_STEP_COUNTER:</h4>

<ul><li>values[0]: número de etapas executadas pelo usuário desde a última reinicialização enquanto o sensor está ativado</li></ul>

<h4>android.hardware.Sensor#TYPE_STEP_DETECTOR Sensor.TYPE_STEP_DETECTOR:</h4>

<ul><li>values[0]: sempre definido como 1.0, representando um único evento< detectado/li></ul>

<h4>android.hardware.Sensor#TYPE_HEART_BEAT Sensor.TYPE_HEART_BEAT:</h4>

Um sensor desse tipo retorna um evento sempre que um pico de batida cardíaca é detectado.

O pico aqui corresponde, idealmente, ao pico positivo no complexo de QRS de um sinal ECG.

<ul><li> values[0]: confidence</li></ul>

Um valor de confiança de 0,0 indica incerteza completa - que um pico é tão provável que esteja no carimbo de data/hora indicado como em qualquer outro lugar. Um valor de confiança de 1,0 indica completo certamente - que um pico é completamente improvável de estar em qualquer outro lugar no complexo de QRS.

<h4>android.hardware.Sensor#TYPE_LOW_LATENCY_OFFBODY_DETECT Sensor.TYPE_LOW_LATENCY_OFFBODY_DETECT:</h4>

Um sensor desse tipo retorna um evento sempre que o dispositivo faz a transição de fora do corpo para o corpo e do corpo para fora do corpo (por exemplo, um dispositivo vestível sendo removido do pulso dispararia um evento que indica uma transição fora do corpo). O evento retornado conterá um único valor para indicar o estado fora do corpo:

<ul><li> values[0]: off-body state</li></ul>

Valores válidos para o estado fora do corpo: <ul><li> 1.0 (o dispositivo está no corpo)</li<>li> 0.0 (o dispositivo está fora do corpo)</li></ul>

Quando um sensor desse tipo é ativado, ele deve fornecer o evento inicial no corpo ou fora do corpo que representa o estado atual do dispositivo dentro de 5 segundos após a ativação do sensor.

Esse sensor deve ser capaz de detectar e relatar uma transição do corpo para fora do corpo dentro de 3 segundos após o dispositivo ser removido do corpo e deve ser capaz de detectar e relatar uma transição fora do corpo para o corpo dentro de 5 segundos após o dispositivo ser colocado novamente no corpo.

<h4>android.hardware.Sensor#TYPE_ACCELEROMETER_UNCALIBRATED Sensor.TYPE_ACCELEROMETER_UNCALIBRATED:</h4> Todos os valores estão em unidades SI (m/s^2)

Semelhante a android.hardware.Sensor#TYPE_ACCELEROMETER, a calibragem de fábrica e a compensação de temperatura ainda serão aplicadas à medida "não recalibrado".

A matriz de valores é mostrada abaixo: <ul><li> values[0] = x_uncalib without bias compensation </li<>li> values[1] = y_uncalib without bias compensation </li><li> values[2] = z_uncalib without bias compensation </li<>values>[3] = estimated x_bias </li<>li> values[4] = estimated y_bias </li><li> values[5] = estimated z_bias </li></ul>

x_uncalib, y_uncalib, z_uncalib são a aceleração medida em eixos X, Y, Z semelhantes aos android.hardware.Sensor#TYPE_ACCELEROMETEReixos , sem qualquer correção de viés (compensação de viés de fábrica e qualquer compensação de temperatura é permitida). x_bias, y_bias, z_bias são os preconceitos estimados.

<h4>android.hardware.Sensor#TYPE_HINGE_ANGLE Sensor.TYPE_HINGE_ANGLE:</h4>

Um sensor desse tipo mede o ângulo, em graus, entre duas partes integrais do dispositivo. Espera-se que o movimento de uma dobradiça medida por esse tipo de sensor altere as maneiras pelas quais o usuário pode interagir com o dispositivo, por exemplo, desdobrando ou revelando uma exibição.

<ul><li> values[0]: ângulo da dobradiça medido entre 0 e 360 graus inclusive</li></ul>

<h4>android.hardware.Sensor#TYPE_HEAD_TRACKER Sensor.TYPE_HEAD_TRACKER:</h4>

Um sensor desse tipo mede a orientação da cabeça de um usuário em relação a um quadro de referência arbitrária, bem como a taxa de rotação.

Os eventos produzidos por esse sensor seguem um quadro de coordenadas especial centrado na cabeça, em que: ul>li O eixo X cruza as orelhas do usuário, com a direção X positiva estendendo-se para fora da orelha< direita do usuário/li li<>> O eixo Y cruza da parte de trás da cabeça do usuário pelo nariz, com a direção positiva estendendo-se para fora do nariz,><< e o plano X/Y sendo nominalmente paralelo ao chão quando o usuário está ereto e olhando para frente</li li>>< O eixo Z cruza do pescoço pela parte superior da cabeça do usuário, com a direção positiva estendendo-se para fora da parte superior da cabeça</li></ul>

Os dados são fornecidos na representação de vetor Euler, que é um vetor cuja direção indica o eixo de rotação e magnitude indica o ângulo a ser girado em torno desse eixo, em radianos.

Os três primeiros elementos fornecem a transformação do quadro de referência (arbitrário, possivelmente descompasso lento) para o quadro de cabeçalho. A magnitude desse vetor está no intervalo [0, π] radianos, enquanto o valor dos eixos individuais está no intervalo [-π, π]. Os próximos três elementos, opcionalmente, fornecem a velocidade rotacional estimada da cabeça do usuário em relação a si mesmo, em radianos por segundo. Se um determinado sensor não der suporte à determinação de velocidade, esses elementos serão definidos como 0.

<ul>li values[0] : componente X do vetor Euler que representa valores de rotação</li<>li>[1] : componente Y do vetor Euler representando valores de rotação</li><li>[2] : componente Z do vetor Euler representando valores de rotação</li<>li>[3] : componente X do vetor Euler que representa a velocidade angular (se compatível, caso contrário 0)</li li><>>< values[4] : componente Y do vetor Euler que representa a velocidade angular (se houver suporte, caso contrário 0)</li><> valores[5] : componente Z do vetor Euler que representa a velocidade angular (se houver suporte, caso contrário 0)</li></ul>

<h4>android.hardware.Sensor#TYPE_ACCELEROMETER_LIMITED_AXES Sensor.TYPE_ACCELEROMETER_LIMITED_AXES: </h4> Equivalente a TYPE_ACCELEROMETER, mas casos de suporte em que não há suporte para um ou dois eixos.

Os últimos três valores representam se há suporte para o valor de aceleração de um determinado eixo. Um valor de 1,0 indica que o eixo tem suporte, enquanto um valor de 0 significa que ele não tem suporte. Os eixos com suporte devem ser determinados em tempo de build e esses valores não são alterados durante o runtime.

Os valores de aceleração para eixos sem suporte são definidos como 0.

Similar a android.hardware.Sensor#TYPE_ACCELEROMETER.

<ul>li values[0]: Aceleração menos Gx no eixo x (se compatível)</li<>valores li>[1]: Aceleração menos Giro no eixo y (se compatível)</li><li> values[2]: Aceleração menos Gz no eixo z (se compatível)</li><valores li>[3]: aceleração com suporte para valores x-axis</li<>li>[4]: aceleração com suporte para valores y-axis</li<>li>[5]:>< Aceleração com suporte para z-axis</li></ul>

<h4>android.hardware.Sensor#TYPE_GYROSCOPE_LIMITED_AXES Sensor.TYPE_GYROSCOPE_LIMITED_AXES: </h4> Equivalente a TYPE_GYROSCOPE, mas casos de suporte em que não há suporte para um ou dois eixos.

Os últimos três valores representam se há suporte para o valor de velocidade angular de um determinado eixo. Um valor de 1,0 indica que o eixo tem suporte, enquanto um valor de 0 significa que ele não tem suporte. Os eixos com suporte devem ser determinados em tempo de build e esses valores não são alterados durante o runtime.

Os valores de velocidade angular para eixos sem suporte são definidos como 0.

Similar a android.hardware.Sensor#TYPE_GYROSCOPE.

<ul>li values[0]: velocidade angular em torno do eixo x (se houver suporte)</li<>li> values[1]: velocidade angular em torno do eixo y (se compatível)</li><valores li>[2]: velocidade angular em torno do eixo z (se supported)</li>>< values[3]: velocidade angular com suporte para valores x-axis</li><li>[4]: velocidade angular compatível com valores y-axis</li<>li>[5]: velocidade angular com suporte para z-axis</li/<>>< ul>

<h4>android.hardware.Sensor#TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED Sensor.TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED: </h4> Equivalente a TYPE_ACCELEROMETER_UNCALIBRATED, mas casos de suporte em que não há suporte para um ou dois eixos.

Os últimos três valores representam se há suporte para o valor de aceleração de um determinado eixo. Um valor de 1,0 indica que o eixo tem suporte, enquanto um valor de 0 significa que ele não tem suporte. Os eixos com suporte devem ser determinados em tempo de build e esses valores não são alterados durante o runtime.

Os valores de aceleração e os valores de viés para eixos sem suporte são definidos como 0.

<ul>li values[0]: x_uncalib sem compensação de viés (se suportado)</li><li> values[1]: y_uncalib sem compensação de viés (se compatível)</li<>li> values[2]: z_uncalib sem compensação de viés (se compatível)</li><> values[3]: estimado x_bias (se compatível)</li><valores li>[4]: estimado y_bias (se houver suporte)</li>>< values[5]: estimado z_bias (se compatível)</li><><li> values[6]: aceleração com suporte para valores de eixo< x/li>><[7]: aceleração com suporte para valores y-axis</li<>li>[8]: aceleração com suporte para z-axis</li></ul>

<h4>android.hardware.Sensor#TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED Sensor.TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED: </h4> Equivalente a TYPE_GYROSCOPE_UNCALIBRATED, mas casos de suporte em que não há suporte para um ou dois eixos.

Os últimos três valores representam se há suporte para o valor de velocidade angular de um determinado eixo. Um valor de 1,0 indica que o eixo tem suporte, enquanto um valor de 0 significa que ele não tem suporte. Os eixos com suporte devem ser determinados em tempo de build e esses valores não são alterados durante o runtime.

Os valores de velocidade angular e os valores de descompasso para eixos sem suporte são definidos como 0.

<ul>li values[0]: velocidade angular (compensação de descompasso w/o) ao redor do eixo X (se houver suporte)</li<>> valores[1]: velocidade angular (compensação de descompasso do w/o) ao redor do eixo Y (se compatível)</li><li> values[2]: velocidade angular (compensação de descompasso w/o) ao redor do eixo Z (se houver suporte)</li>>< valores[3]: descompasso estimado em torno do eixo X (se compatível)</li<>valores li>[4]:>< descompasso estimado em torno do eixo Y (se houver suporte)</li<>li> values[5]: descompasso estimado em torno do eixo Z (se compatível)</li<>> valores li[6]: velocidade angular compatível com valores de eixo< x/li<>li>[7]: velocidade angular compatível com valores de eixo< y/li><>[8]: velocidade angular compatível com eixo< z/li<>/ul></p>

<h4>android.hardware.Sensor#TYPE_HEADING Sensor.TYPE_HEADING:</h4>

Um sensor desse tipo mede a direção em que o dispositivo está apontando em relação ao norte verdadeiro em graus. O valor deve estar entre 0,0 (inclusivo) e 360,0 (exclusivo), com 0 indicando norte, 90 leste, 180 sul e 270 oeste.

A precisão é definida em 68% confiança. No caso em que a distribuição subjacente é considerada normal gaussiana, isso seria considerado um desvio padrão. Por exemplo, se o título retornar 60 graus e a precisão retornar 10 graus, haverá uma probabilidade de 68% do título verdadeiro estar entre 50 graus e 70 graus.

<ul><li> values[0]: Título medido em graus.</li><li> values[1]: precisão do título em graus.</li></ul>

Java documentação para android.hardware.SensorEvent.values.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a

Confira também