SensorEvent.Values Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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·t/(T<sub>n</sub>+t)
t<sub>d</sub>(t,RH) = T<sub>n</sub> · ------------------------------
m - [ln(RH/100%) + m·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%·A·exp(m·t/(T<sub>n</sub>+t))
d<sub>v</sub>(t,RH) = 216.7 · -------------------------
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.