Partilhar via


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 para obter 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 para obter 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><> li valores[1]: Aceleração menos Gy no eixo <y /li><> li valores[2]: Aceleração menos Gz no eixo <z /li></ul><>

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

<b><centro>Anúncio = - ∑ Fs / massa</centro></b>

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

<b><centro>Anúncio = -g - ∑ F / massa< / centro>< / b>

Por esta razão, quando o dispositivo está sentado em uma mesa (e obviamente não 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 conseguido aplicando um filtro passa-alta . Por outro lado, um filtro passa-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 fica deitado sobre uma mesa e é empurrado do lado esquerdo em direção à direita, o valor de aceleração x é positivo.</li>

<li>Quando o dispositivo fica plano sobre uma mesa, 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 fica deitado sobre uma mesa e é empurrado em direção ao 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 nos eixos X, Y e Z.

<h4>android.hardware.Sensor#TYPE_GYROSCOPE Sensor.TYPE_GYROSCOPE: </h4> Todos os valores são em radianos/segundo e medem a taxa de rotação em torno dos eixos X, Y e Z locais do dispositivo. O sistema de coordenadas é o mesmo usado para o sensor de aceleração. A rotação é positiva no sentido anti-horário. Ou seja, um observador olhando de algum local positivo no eixo x, y ou z para um dispositivo posicionado na origem relataria rotação positiva se o dispositivo parecesse estar girando no sentido anti-horário. Note que esta é a definição matemática padrão de rotação positiva e não concorda com a definição de rolo dada anteriormente. <ul li> values[0]: Velocidade angular em torno do eixo <x /li><> li valores[1]: Velocidade angular em torno do eixo <y /li><> li valores[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 descrevendo a mudança de ângulos ao longo do passo 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>valores[0]: Nível de luz ambiente em unidades <SI lux /li></ul>

<h4>android.hardware.Sensor#TYPE_PRESSURE Sensor.TYPE_PRESSURE:</h4><ul<>li>valores[0]: Pressão atmosférica em hPa (milibar) </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>Nota:</b> Alguns sensores de proximidade suportam apenas uma medição binária de perto ou de longe . Nesse caso, o sensor deve informar 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 magnitude da gravidade. As unidades são m/s^2. O sistema de coordenadas é o mesmo usado pelo sensor de aceleração.

<b>Nota:</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 indicando 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 acelerómetro, de gravidade e de aceleração linear deve obedecer à seguinte relação:

<>aceleração ul = gravidade + aceleração< linear/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 girou através de um ângulo θ em torno de um eixo < x, y, z>.

Os três elementos do vetor de rotação são < x*sin(θ/2), y*sin(θ/2), z*sin(θ/2),> tal que a magnitude do vetor de rotação é igual a sin(θ/2), e a direção do vetor de rotação é igual à direção do eixo de rotação.

</p>Os três elementos do vetor de rotação são iguais aos três últimos componentes de um <b>unit</b> quaternion < cos(θ/2), x*sin(θ/2), y*sin(θ/2), z*sin(θ/2)>.</p>

Os elementos do vetor de rotação são sem unidade. Os eixos 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 ortonormal direta, onde: </p>

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

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

<Valores de ul li>[0]: x*sin(θ/2) </li><li> valores[1]: y*sin(θ/2) </li><li> valores[2]: z*sin(θ/2) </li>>< li valores[3]: cos(θ/2) </li><li> valores[4]: título estimado Precisão (em radianos) (-1 se não disponível)</li<>/ul><>

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

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

<><ul li> valores[0]: Azimute, â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>

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

valores[2]: Rolo, rotação em torno do eixo y (-90 a 90) aumentando à medida que o dispositivo se move no sentido horário.

</ul>

<b>Nota:</b> Esta definição é diferente de <b>bocejo, passo e rolo</b> usado na aviação onde o eixo X está ao longo do lado longo do avião (cauda ao nariz).

<b>Nota:</b> Este 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() para calcular esses valores.

<b>Nota importante:</b> Por razões históricas, o ângulo de rolagem é positivo no sentido horário (matematicamente falando, deve ser positivo no sentido anti-horário).

<h4>android.hardware.Sensor#TYPE_RELATIVE_HUMIDITY Sensor.TYPE_RELATIVE_HUMIDITY:</h4><ul><li> valores[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 orvalho e a umidade absoluta podem ser calculados.

<u>Ponto de Orvalho</u>

O ponto de orvalho é a temperatura à qual uma determinada parcela de ar deve ser resfriada, a uma pressão barométrica constante, para que o vapor de água se condense em á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>ponto de orvalho temperatura em ° 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 determinado volume 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> valores[0]: temperatura ambiente (ambiente) em grau 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 calibração do ferro duro é relatada separadamente em vez de ser incluída na medição. A calibração de fábrica e a compensação de temperatura ainda serão aplicadas à medição "não calibrada". Supõe-se que o campo magnético é devido aos polos 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>>< li values[5] = z_bias </li></ul>

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

x_bias, y_bias, z_bias dão o viés de ferro estimado nos eixos X, Y, Z. Cada campo é um componente da calibração estimada do ferro duro. Os valores estão em micro-Tesla (uT).

Ferro duro - Estas 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 ao android.hardware.Sensor#TYPE_ROTATION_VECTOR fato de não usar o campo geomagnético. Portanto, o eixo Y não aponta para o norte, mas sim para alguma outra referência, essa referência pode derivar pela mesma ordem de magnitude que a deriva do giroscópio em torno do eixo Z.

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

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

Nenhuma compensação de giro-deriva é realizada. A calibração 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 que é usado para a android.hardware.Sensor#TYPE_ACCELEROMETER Rotação é positiva no sentido anti-horário (regra da direita). Ou seja, um observador olhando de algum local positivo no eixo x, y ou z para 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> valores[0] : velocidade angular (sem compensação de deriva) em torno do eixo X em valores de rad/s </li<>li>[1] : velocidade angular (sem compensação de deriva) em torno do eixo Y em valores de rad/s </li><li>[2] : velocidade angular (sem compensação de deriva) em torno do eixo Z em valores de rad/s </li><li>[3] : desvio estimado em torno do eixo X em valores de rad/s </li<>li>[4] :>< deriva estimada em torno do eixo Y em valores rad/s </li<>li>[5] : deriva estimada 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, o que mudou 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 quaternião e uma translação expressa em unidades SI. O evento também contém uma rotação delta e translação que mostram como a pose do dispositivo mudou desde a pose numerada da sequência anterior. O evento usa os eixos canônicos do Android Sensor.

<Valores de LI> UL[0]: x*sin(θ/2) </li<>valores de LI>[1]: y*sin(θ/2) </li<>li> valores[2]: z*sin(θ/2) </li><valores de li>[3]: cos(θ/2) </li><>

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

<valores de li>[7]: Rotação do quaternião delta x*sin(θ/2) </li<>valores de li>[8]: Rotação do quaternião delta y*sin(θ/2) </li<>valores de li>[9]: Rotação do quaternião delta z*sin(θ/2) </li<>valores de li>[10]: Rotação do quaternião Delta cos(θ/2) </li>

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

<valores de li> [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 é 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 após o dispositivo estar em repouso para acionar esse evento.

O único valor permitido é 1,0.

<><Valores de ul li>[0]: 1,0 </li></ul>

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

Um evento TYPE_MOTION_DETECT é 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 após o dispositivo estar em repouso para acionar esse evento.

O único valor permitido é 1,0.

<><Valores de ul li>[0]: 1,0 </li></ul>

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

Um sensor desse tipo retorna um evento toda vez que um pico de batimento cardíaco é detectado.

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

<><Valores de ul li>[0]: confiança</li></ul>

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

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

Um sensor desse tipo retorna um evento toda vez 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 desencadearia um evento indicando uma transição fora do corpo). O evento retornado conterá um único valor para indicar o estado fora do corpo:

<><Valores de UL LI>[0]: estado< fora do corpo/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 entregar 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.

Este sensor deve ser capaz de detectar e comunicar uma transição entre o corpo e o exterior do corpo no prazo de 1 segundo após a remoção do dispositivo do corpo e deve ser capaz de detectar e comunicar uma transição fora do corpo para o corpo no prazo de 5 segundos após a recolocação do dispositivo 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 ao android.hardware.Sensor#TYPE_ACCELEROMETER, a calibração de fábrica e a compensação de temperatura ainda serão aplicadas à medição "não calibrada".

A matriz de valores é mostrada abaixo: <ul><li> values[0] = x_uncalib sem viés de compensação </li><> li valores[1] = y_uncalib sem viés de compensação </li><> li valores[2] = z_uncalib sem viés compensação </li>>< valores de li[3] = estimados x_bias </li><> li valores[4] = estimados y_bias </li><> li valores[5] = estimados z_bias </li></ul>

x_uncalib, y_uncalib z_uncalib são as acelerações medidas nos eixos X, Y, Z semelhantes ao android.hardware.Sensor#TYPE_ACCELEROMETER, 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 vieses estimados.

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

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

<><ul li> values[0]: Ângulo de 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 referencial arbitrário, bem como a taxa de rotação.

Os eventos produzidos por este sensor seguem uma estrutura de coordenadas especial centrada na cabeça, onde: <ul<>li> O eixo X atravessa as orelhas do usuário, com a direção X positiva se estendendo 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 através do nariz, com a direção positiva se estendendo para fora do nariz, e o plano X/Y sendo nominalmente paralelo ao solo quando o usuário está ereto e olhando para frente</li<>li> O eixo Z cruza do pescoço através do topo da cabeça do usuário, com a direção positiva se estendendo do topo da cabeça</li></ul>

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

Os três primeiros elementos fornecem a transformação do quadro de referência (arbitrário, possivelmente lentamente à deriva) para o quadro principal. A magnitude desse vetor está na faixa [0, π] radianos, enquanto o valor dos eixos individuais está na faixa [-π, π]. Os três elementos seguintes fornecem opcionalmente a velocidade de rotação estimada da cabeça do usuário em relação a si mesma, em radianos por segundo. Se um determinado sensor não suportar a determinação da velocidade, esses elementos serão definidos como 0.

<ul li> valores[0] : X componente do vetor de Euler representando rotação</li<>li> valores[1] : Componente Y do vetor de Euler representando rotação</li<>> li valores[2] : componente Z do vetor de Euler representando rotação</li<>li> valores[3] : Componente X do vetor de Euler representando velocidade angular (se suportado, caso contrário 0)</li li><>>< valores[4] : componente Y do vetor de Euler representando a velocidade angular (se suportado, caso contrário 0)</li<>li> valores[5] : componente Z do vetor de Euler representando a velocidade angular (se suportado, 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 um ou dois eixos não são suportados.

Os três últimos valores representam se o valor de aceleração para um determinado eixo é suportado. Um valor de 1,0 indica que o eixo é suportado, enquanto um valor de 0 significa que ele não é suportado. Os eixos suportados devem ser determinados em tempo de compilação e esses valores não mudam durante o tempo de execução.

Os valores de aceleração para eixos que não são suportados são definidos como 0.

Similar a android.hardware.Sensor#TYPE_ACCELEROMETER.

<ul li> values[0]: Aceleração menos Gx no eixo x (se suportado)</li<>li> valores[1]: Aceleração menos Gy no eixo y (se suportado)</li<>li> valores[2]: Aceleração menos Gz no eixo z (se suportado)</li><li> valores[3]: Aceleração suportada para valores de x-axis</li<>li>[4]: Aceleração suportada para valores do eixo< y/li<>li>[5]:>< Aceleração suportada 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 um ou dois eixos não são suportados.

Os três últimos valores representam se o valor de velocidade angular para um determinado eixo é suportado. Um valor de 1,0 indica que o eixo é suportado, enquanto um valor de 0 significa que ele não é suportado. Os eixos suportados devem ser determinados em tempo de compilação e esses valores não mudam durante o tempo de execução.

Os valores de velocidade angular para eixos que não são suportados são definidos como 0.

Similar a android.hardware.Sensor#TYPE_GYROSCOPE.

<valores de ul li>[0]: Velocidade angular em torno do eixo x (se suportado)</valores li<>li>[1]: Velocidade angular em torno do eixo y (se suportado)</valores li<>li>[2]: Velocidade angular em torno do eixo z (se suportado)</valores li><li>[3]: Velocidade angular suportada para valores de x-axis</li<>li>[4]: Velocidade angular suportada para valores de li-axis</y/li<>>[5]: Velocidade angular suportada para o eixo< z/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 um ou dois eixos não são suportados.

Os três últimos valores representam se o valor de aceleração para um determinado eixo é suportado. Um valor de 1,0 indica que o eixo é suportado, enquanto um valor de 0 significa que ele não é suportado. Os eixos suportados devem ser determinados em tempo de compilação e esses valores não mudam durante o tempo de execução.

Os valores de aceleração e os valores de polarização para eixos que não são suportados são definidos como 0.

<Valores de Li> UL[0]: x_uncalib sem compensação de viés (se suportado)</Valores de Li<>LI>[1]: y_uncalib sem compensação de viés (se suportado)</Valores de Li<>Li>[2]: z_uncalib sem compensação de viés (se suportado)</Valores de Li><Li>[3]: x_bias estimado (se suportado)</Valores<>de Li Li>[4]: y_bias estimado (se suportado)</Valores de Li>>< Li[5]: z_bias estimado (se suportado)</Li><><valores li>[6]: Aceleração suportada para valores de li-axis</li<>li>[7]: Aceleração suportada para valores de li-axis</li><li>[8]: Aceleração suportada 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 um ou dois eixos não são suportados.

Os três últimos valores representam se o valor de velocidade angular para um determinado eixo é suportado. Um valor de 1,0 indica que o eixo é suportado, enquanto um valor de 0 significa que ele não é suportado. Os eixos suportados devem ser determinados em tempo de compilação e esses valores não mudam durante o tempo de execução.

Os valores de velocidade angular e os valores de desvio para eixos que não são suportados são definidos como 0.

<ul li> valores[0]: Velocidade angular (sem compensação de deriva) em torno do eixo X (se suportado)</valores li><li>[1]: Velocidade angular (sem compensação de deriva) em torno do eixo Y (se suportado)</valores li<>li>[2]: Velocidade angular (sem compensação de deriva) em torno do eixo Z (se suportado)</valores li<>li>[3]: desvio estimado em torno do eixo X (se suportado)</valores li<>li>[4]:>< desvio estimado em torno do eixo Y (se suportado)</valores li><li>[5]: desvio estimado em torno do eixo Z (se suportado)</valores li<>li>[6]: Velocidade angular suportada para valores do eixo< x/li<>li>[7]: Velocidade angular suportada para valores do eixo< y/li><li>[8]: Velocidade angular suportada para o 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 (inclusive) e 360,0 (exclusivo), com 0 indicando norte, 90 leste, 180 sul e 270 oeste.

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

<><ul li> values[0]: Posição medida em graus.</li><li> values[1]: Precisão do título em graus.</li></ul>

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

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

Aplica-se a

Confira também