다음을 통해 공유


SensorEvent.Values 속성

정의

배열의 #values values 길이와 내용은 모니터링되는 형식에 android.hardware.Sensor sensor 따라 달라집니다(사용된 좌표계 정의도 SensorEvent 참조).

[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

속성 값

특성

설명

배열의 #values values 길이와 내용은 모니터링되는 형식에 android.hardware.Sensor sensor 따라 달라집니다(사용된 좌표계 정의도 SensorEvent 참조).

<h4>android.hardware.Sensor#TYPE_ACCELEROMETER Sensor.TYPE_ACCELEROMETER:</h4> 모든 값은 SI 단위(m/s^2)입니다.

<ul>li 값[0]: x-축 </li li><> 값[1]의 가속에서 Gx를 뺀 가속 -y축 </li li>>< 값[2]: 가속에서 Gz를 뺀 z축 </li></ul><>

이 유형의 센서는 디바이스에 적용되는 가속도(<b>Ad</b>)를 측정합니다. 개념적으로, 관계형을 사용하여 센서 자체(<b>Fs/b>)에 적용되는 힘을 측정하여 이 작업을 수행합니다<.

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

특히 중력의 힘은 항상 측정된 가속에 영향을 미칩니다.

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

이러한 이유로 디바이스가 테이블에 앉아 있을 때(그리고 분명히 가속하지 않음) 가속도계는 b>g</b> = 9.81m/s^2의 <크기를 읽습니다.

마찬가지로 장치가 자유 낙하 상태이므로 9.81m/s^2에서 지상으로 위험하게 가속할 때 가속도계는 0m/s^2의 크기를 읽습니다.

디바이스의 실제 가속도를 측정하려면 중력의 힘을 제거해야 합니다. 이 작업은 하이패스 필터를 적용하여 수행할 수 있습니다. 반대로, 로우 패스 필터를 사용하여 중력의 힘을 격리할 수 있습니다.

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>Examples</u>: <ul><li>디바이스가 테이블에 평평하게 놓여 있고 왼쪽에서 오른쪽으로 밀면 x 가속 값이 양수입니다.</리>

<li>디바이스가 테이블에 평평하게 놓이면 가속 값은 +9.81이며, 이는 디바이스의 가속(0m/s^2)에서 중력의 힘을 뺀 값(-9.81 m/s^2)에 해당합니다.</리>

<li>장치가 테이블에 평평하게 놓여 있고 A m/s^2의 가속으로 하늘쪽으로 밀면 가속 값은 중력의 힘을 뺀 디바이스의 가속(+A m/s^2)에 해당하는 A+9.81과 같습니다(-9.81 m/s^2).</li></ul>

<h4>android.hardware.Sensor#TYPE_MAGNETIC_FIELD Sensor.TYPE_MAGNETIC_FIELD:</h4> 모든 값은 uT(micro-Tesla)에 있으며 X, Y 및 Z 축에서 주변 자기장을 측정합니다.

<h4>android.hardware.Sensor#TYPE_GYROSCOPE Sensor.TYPE_GYROSCOPE: </h4> 모든 값은 라디안/초 단위이며 디바이스의 로컬 X, Y 및 Z 축을 중심으로 회전 속도를 측정합니다. 좌표계는 가속 센서에 사용되는 것과 동일합니다. 회전은 시계 반대 방향으로 양수입니다. 즉, 원본에 배치된 디바이스에서 x, y 또는 z 축의 양수 위치에서 바라보는 관찰자는 디바이스가 시계 반대 방향으로 회전하는 것처럼 보이면 양수 회전을 보고합니다. 이것은 양의 회전에 대한 표준 수학 정의이며 이전에 제공된 롤의 정의에 동의하지 않습니다. <ul>li 값[0]: x축 </li li<>> 값 주위의 Angular 속도[1]: y축 </li li>>< 값 주위의 Angular 속도[2]: z축 </li></ul 주위의 Angular 속도><>

일반적으로 자이로스코프의 출력은 시간에 따른 각도 변경을 설명하는 회전을 계산하기 위해 시간이 지남에 따라 통합됩니다. 예를 들면 다음과 같습니다.

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;
                }

실제로 자이로스코프 노이즈 및 오프셋은 보정해야 하는 몇 가지 오류를 발생합니다. 이 작업은 일반적으로 다른 센서의 정보를 사용하여 수행되지만 이 문서의 범위를 벗어집니다.

<h4>android.hardware.Sensor#TYPE_LIGHT Sensor.TYPE_LIGHT:</h4><ul<>li>values[0]: SI lux units </li></ul의 주변 광원 수준>

<h4>android.hardware.Sensor#TYPE_PRESSURE Sensor.TYPE_PRESSURE:</h4><ul<>li>값[0]: hPa(밀리바) </li></ul의 대기 압력>

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

<ul><li>값[0]: 센티미터 </li></ul로 측정된 근접 센서 거리>

<b>참고:</b> 일부 근접 센서는 이진 근거또는 원거리 측정만 지원합니다. 이 경우 센서는 먼 상태에서 해당 android.hardware.Sensor#getMaximumRange() maximum range 값을 보고하고 가까운 상태에서는 더 작은 값을 보고해야 합니다.

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

중력의 방향과 크기를 나타내는 3차원 벡터입니다. 단위는 m/s^2입니다. 좌표계는 가속 센서에서 사용하는 것과 동일합니다.

<b>참고:</b> 장치가 미사용 상태이면 중력 센서의 출력은 가속도계의 출력과 동일해야 합니다.

<h4>android.hardware.Sensor#TYPE_LINEAR_ACCELERATION Sensor.TYPE_LINEAR_ACCELERATION: </h4> 중력을 포함하지 않고 각 디바이스 축을 따라 가속을 나타내는 3차원 벡터입니다. 모든 값의 단위는 m/s^2입니다. 좌표계는 가속 센서에서 사용하는 것과 동일합니다.

가속도계, 중력 및 선형 가속 센서의 출력은 다음 관계를 준수해야 합니다.

<ul>가속 = 중력 + 선형 가속</ul>

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

회전 벡터는 각도와 축의 조합으로 디바이스의 방향을 나타내며, 이 경우 디바이스는 축을 중심으로 각도 및 #952를 통해 회전합니다. x, y, z>.

회전 벡터의 세 요소는 <입니다. x*sin(θ/2), y*sin(θ/2), z*sin(θ/2)> - 회전 벡터의 크기가 sin(θ/2)과 같고 회전 벡터의 방향은 회전 축의 방향과 같습니다.

</p>회전 벡터의 세 요소는 b>단위</b> 쿼터니언 <의 <마지막 세 구성 요소와 같습니다. cos(θ/2), x*sin(θ/2), y*sin(θ/2), z*sin(θ/2)>.</p>

회전 벡터의 요소는 단위가 없습니다. x, y 및 z 축은 가속 센서와 동일한 방식으로 정의됩니다.

참조 좌표계는 직접 정수 기준으로 정의됩니다. 여기서는 </p>

<ul><li>X는 벡터 제품 <b>Y.Z</b>로 정의됩니다(장치의 현재 위치에서 지면에 접지되고 대략 동쪽을 가리킵니다).</li li><>Y는 장치의 현재 위치에서 땅에 접선이며 자기 북쪽을 가리킵니다.</li li><>Z는 하늘을 가리키며 땅에 수직입니다.</li></ul>

<center><img src=".. /.. /.. /images/axis_globe.png" alt="세계 좌표계 다이어그램." 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]: 예상 제목 정확도(라디안) (-1을 사용할 수 없는 경우)</li></ul><>

원래 선택 사항인 values[3]는 항상 SDK 수준 18부터 제공됩니다. values[4]는 SDK 수준 18에 추가된 새 값입니다.

<h4>android.hardware.Sensor#TYPE_ORIENTATION Sensor.TYPE_ORIENTATION:</h4> 모든 값은 각도입니다.

<ul><li> 값[0]: 지무스, z축 주위의 자기 북쪽 방향과 y축 사이의 각도(0~359). 0=북쪽, 90=동부, 180=남부, 270=서부 </p>

values[1]: z축이 b>를 y축 쪽으로</b>로 이동할 <때 양수 값을 가진 피치, x축(-180~180)을 중심으로 회전합니다.

values[2]: 장치가 시계 방향으로 이동함에 따라 y축(-90에서 90)을 중심으로 회전합니다.

</ul>

<b>참고:</b> 이 정의는 X축이 평면의 긴 면(꼬리에서 코까지)을 따라 있는 항공에서 사용되는 b>yaw, 피치 및 롤</b>와 다릅니다<.

<b>참고:</b> 이 센서 유형은 레거시상의 이유로 존재합니다. 이러한 값을 대신 사용하고 android.hardware.SensorManager#getRotationMatrix getRotationMatrix() android.hardware.Sensor#TYPE_ROTATION_VECTOR rotation vector sensor type 함께 android.hardware.SensorManager#remapCoordinateSystem remapCoordinateSystem() android.hardware.SensorManager#getOrientation getOrientation() 계산하세요.

<b>중요 참고:</b> 기록상의 이유로 롤 각도는 시계 방향에서 양수입니다(수학적으로 말하면 시계 반대 방향으로 양수여야 함).

<h4>android.hardware.Sensor#TYPE_RELATIVE_HUMIDITY Sensor.TYPE_RELATIVE_HUMIDITY:</h4><ul><li> 값[0]: 상대 주변 공기 습도(백분율 </li></ul)>

상대 주변 공기 습도 및 주변 온도를 측정하면 이슬점과 절대 습도를 계산할 수 있습니다.

<u>이슬점</u>

이슬점은 수증기가 물로 응축되기 위해 일정한 기압에서 공기의 주어진 소포를 냉각해야하는 온도입니다.

<center>

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 dt><dd>dew point temperature in ° C</dd><dt>t</dt><dd>실제 온도 (° C</dd><dt>RH</dt><dd>실제 상대 습도(%</dd><dt>m</dt<>dd>17.62</dd><dt>T<sub>n</sub></dt><dd>243.12 ° C</dd></dl>

예를 들어:

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

<u>절대 습도</u>

절대 습도는 건조 공기의 특정 볼륨에서 수증기의 질량이다. 단위는 g/m<sup>3</sup>입니다.

<center>

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>absolute humidity in g/m<sup>3</sup></dd><dt>t</dt><dd>actual temperature in ° C</dd><dt>RH</dt><dd>실제 상대 습도(%</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>

예를 들어:

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> 값[0]: 앰비언트(실) 온도(섭씨)입니다.</li></ul>

<h4>android.hardware.Sensor#TYPE_MAGNETIC_FIELD_UNCALIBRATED Sensor.TYPE_MAGNETIC_FIELD_UNCALIBRATED:</h4> 와 유사 android.hardware.Sensor#TYPE_MAGNETIC_FIELD하지만, 하드 아이언 보정은 측정에 포함되는 대신 별도로 보고됩니다. 공장 보정 및 온도 보정은 여전히 "보정되지 않은" 측정값에 적용됩니다. 자기장이 지구의 극 때문이라는 가정은 피할 수 있습니다.

값 배열은 다음과 같습니다. 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 X, Y, Z 축에서 측정된 자기장입니다. 연철 및 온도 보정이 적용됩니다. 그러나 하드 아이언 보정은 적용되지 않습니다. 값은 마이크로 테슬라 (uT)에 있습니다.

x_bias, y_bias z_bias X, Y, Z 축으로 추정되는 철 바이어스를 제공합니다. 각 필드는 예상 하드 아이언 보정의 구성 요소입니다. 값은 마이크로 테슬라 (uT)에 있습니다.

경철 - 이러한 왜곡은 장치의 자화 철, 강철 또는 영구 자석으로 인해 발생합니다. 부드러운 철 - 이러한 왜곡은 지구의 자기장과의 상호 작용으로 인해 발생합니다.

<h4>android.hardware.Sensor#TYPE_GAME_ROTATION_VECTOR Sensor.TYPE_GAME_ROTATION_VECTOR:</h4> 지자기 필드를 사용하지 않는다는 점을 제외하고 동일합니다 android.hardware.Sensor#TYPE_ROTATION_VECTOR . 따라서 Y축은 북쪽을 가리키지 않고 다른 참조 대신 자이로스코프가 Z축을 중심으로 드리프트하는 것과 동일한 크기의 순서로 드리프트할 수 있습니다.

이상적인 경우, 휴대폰이 회전하여 동일한 실제 방향으로 돌아가면 지구의 지자기 필드를 사용하지 않고도 동일한 게임 회전 벡터를 보고합니다. 그러나 시간이 지남에 따라 방향이 다소 표류할 수 있습니다. 값에 대한 자세한 설명은 참조 android.hardware.Sensor#TYPE_ROTATION_VECTOR 하세요. 이 센서에는 예상 제목 정확도 값이 없습니다.

<h4>android.hardware.Sensor#TYPE_GYROSCOPE_UNCALIBRATED Sensor.TYPE_GYROSCOPE_UNCALIBRATED:</h4> 모든 값은 라디안/초 단위이며 X, Y 및 Z 축을 중심으로 회전 속도를 측정합니다. 각 축의 드리프트 추정도 보고됩니다.

자이로 드리프트 보정은 수행되지 않습니다. 공장 보정 및 온도 보정은 회전 속도(각도 속도)에 계속 적용됩니다.

좌표계는 회전에 android.hardware.Sensor#TYPE_ACCELEROMETER 사용되는 것과 동일하며 시계 반대 방향(오른쪽 규칙)에서 양수입니다. 즉, 원본에 배치된 디바이스에서 x, y 또는 z 축의 양수 위치에서 바라보는 관찰자는 디바이스가 시계 반대 방향으로 회전하는 것처럼 보이면 양수 회전을 보고합니다. 범위는 17.45 rad/s 이상입니다(예: ~1000 deg/s). <ul>li 값[0] : Y축 주위의 각도 속도(w/o 드리프트 보정)(rad/s </li li>>< value[1] : Y축 주위의 각도 속도(w/o 드리프트 보정)(rad/s<) /li li><> value[2] : Z 축을 둘러싼 각도 속도(w/o 드리프트 보정)(rad/s </li li<>> value[3] : rad/s /li li>>< value[4]에서 X축 주위의 <예상 드리프트:>< rad/s </li li><> 값[5]의 Y축 주위의 예상 드리프트: Z축 주위의 예상 드리프트(rad/s </li></ul)>

<b>Pro 팁:</b> 항상 값 배열에 대한 작업을 수행하는 동안 값 배열의 길이를 사용합니다. 이전 버전에서는 항상 3으로 변경되었습니다.

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

TYPE_POSE_6DOF 이벤트는 쿼터니언으로 표현되는 회전과 SI 단위로 표현된 변환으로 구성됩니다. 또한 이 이벤트에는 이전 시퀀스 번호가 매겨진 포즈 이후 디바이스의 포즈가 어떻게 변경되었는지 보여주는 델타 회전 및 변환이 포함되어 있습니다. 이 이벤트는 대포 Android 센서 축을 사용합니다.

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

<li> 값[4]: 임의의 원점에서 x축을 따라 변환합니다. </li li><> 값[5]: 임의의 원점에서 y축을 따라 변환합니다. </li li><> 값[6]: 임의 원점에서 z 축을 따라 변환합니다. </리>

<li> values[7]: Delta quaternion rotation x*sin(θ/2) </li li><> values[8]: Delta quaternion rotation y*sin(θ/2) </li><li> values[9]: Delta quaternion rotation z*sin(θ/2) </li li<>> values[10]: Delta quaternion rotation cos(θ/2) </li>

<li> 값[11]: x축을 따라 델타 변환 </li li><> 값[12]: y축을 따라 델타 변환 </li li><> 값[13]: z 축을 따라 델타 변환 </리>

<li> 값[14]: 시퀀스 번호 </li>

</ul>

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

TYPE_STATIONARY_DETECT 이벤트는 최대 대기 시간이 5초 이상인 디바이스가 5초 이상 고정된 경우 생성됩니다. 즉, 이 이벤트를 트리거하기 위해 디바이스가 미사용 상태인 경우 5~10초 정도 걸릴 수 있습니다.

허용되는 값은 1.0뿐입니다.

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

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

TYPE_MOTION_DETECT 이벤트는 최대 대기 시간이 5초 이상인 상태에서 디바이스가 5초 이상 이동된 경우 생성됩니다. 즉, 이 이벤트를 트리거하기 위해 디바이스가 미사용 상태인 경우 5~10초 정도 걸릴 수 있습니다.

허용되는 값은 1.0뿐입니다.

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

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

이 유형의 센서는 심장 박동 피크가 감지될 때마다 이벤트를 반환합니다.

피크는 ECG 신호의 QRS 복합체에서 양수 피크에 이상적으로 해당합니다.

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

신뢰도 값 0.0은 완전한 불확실성을 나타냅니다. 피크는 다른 곳과 마찬가지로 표시된 타임스탬프에 있을 가능성이 높습니다. 신뢰도 값 1.0은 확실히 완전한 것을 나타냅니다. 피크는 QRS 복합체의 다른 어느 곳에도 없을 것입니다.

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

이 유형의 센서는 디바이스가 오프 바디에서 온-바디로, 온-바디에서 오프 바디로 전환될 때마다 이벤트를 반환합니다(예: 손목에서 제거되는 웨어러블 디바이스는 오프 바디 전환을 나타내는 이벤트를 트리거합니다). 반환된 이벤트에는 본문 외부 상태를 나타내는 단일 값이 포함됩니다.

<ul><li> 값[0]: 오프 본문 상태</li></ul>

오프 본문 상태에 대한 유효한 값: <ul<>li> 1.0(디바이스는 온-바디)</li><li> 0.0(디바이스는 오프 바디)</li></ul>

이 유형의 센서가 활성화되면 센서를 활성화한 후 5초 이내에 현재 디바이스 상태를 나타내는 초기 온-바디 또는 오프 바디 이벤트를 전달해야 합니다.

이 센서는 본문에서 제거되는 디바이스의 1초 이내에 신체에서 오프 바디 전환을 감지하고 보고할 수 있어야 하며, 디바이스가 본문에 다시 배치된 후 5초 이내에 신체의 오프 바디 전환을 감지하고 보고할 수 있어야 합니다.

<h4>android.hardware.Sensor#TYPE_ACCELEROMETER_UNCALIBRATED Sensor.TYPE_ACCELEROMETER_UNCALIBRATED:</h4> 모든 값은 SI 단위(m/s^2)입니다.

이와 유사하게 android.hardware.Sensor#TYPE_ACCELEROMETER공장 보정 및 온도 보정은 여전히 "보정되지 않은" 측정값에 적용됩니다.

값 배열은 다음과 같습니다. ul>li values[0] = 바이어스 보정 <없이 x_uncalib /li li<>> 값[1] = 바이어스 보정 <없이 y_uncalib /li<>li> 값[2] = 바이어스 보정 <없이 z_uncalib /li<>li> 값[3] = 추정 x_bias </li li>>< 값[4] = 추정 y_bias </li><li> values[5] = 추정 z_bias </li<>/ul><<>

x_uncalib, y_uncalib, z_uncalib 바이어스 보정 없이 X, Y, Z축과 유사한 android.hardware.Sensor#TYPE_ACCELEROMETER측정 가속입니다(공장 바이어스 보정 및 온도 보정 허용). x_bias, y_bias, z_bias 예상 편견입니다.

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

이 유형의 센서는 디바이스의 두 정수 부분 사이의 각도를 도 단위로 측정합니다. 이 센서 유형으로 측정된 힌지의 이동은 사용자가 디바이스와 상호 작용하는 방식을 변경할 것으로 예상됩니다(예: 디스플레이를 펼치거나 표시).

<ul><li> 값[0]: 0에서 360도 사이의 측정된 힌지 각도 포함</li></ul>

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

이 유형의 센서는 임의의 참조 프레임을 기준으로 사용자의 머리 방향을 측정하고 회전 속도를 측정합니다.

이 센서에 의해 생성된 이벤트는 특별한 헤드 중심 좌표 프레임을 따릅니다. <여기서 ul<>li> X 축은 사용자의 귀를 통해 교차하며, 양수 X 방향은 사용자의 오른쪽 귀<에서 확장됩니다/li li><> Y 축은 코를 통해 사용자의 머리 뒤쪽에서 교차하며, 양수 방향은 코에서 확장됩니다. 그리고 X/Y 평면은 명목상으로 지면과 평행하게 되어 사용자가 똑바로 앞<을 바라볼 때/li><li> Z 축은 목에서 사용자의 머리 위쪽까지 교차하며, 양수 방향은 헤드</리></울의 위쪽에서 확장됩니다.>

데이터는 유러 벡터 표현으로 제공되며, 방향이 회전 축을 나타내고 크기는 해당 축을 중심으로 회전할 각도를 라디안으로 나타내는 벡터입니다.

처음 세 요소는 (임의, 느리게 표류하는) 참조 프레임에서 헤드 프레임으로의 변환을 제공합니다. 이 벡터의 크기는 범위 [0, π] 라디안에 있지만 개별 축의 값은 범위 [-π, π]입니다. 다음 세 요소는 필요에 따라 사용자 헤드의 예상 회전 속도를 초당 라디안 단위로 제공합니다. 지정된 센서가 속도 확인을 지원하지 않는 경우 이러한 요소는 0으로 설정됩니다.

<ul>li values[0] : 회전</li><li> 값을 나타내는 Euler 벡터의 X 구성 요소[1] : 회전</li<>li> 값을 나타내는 Euler 벡터의 Y 구성 요소[2] : 회전</li><li> 값을 나타내는 Euler 벡터의 Z 구성 요소[3] : 각도 속도를 나타내는 Euler 벡터의 X 구성 요소(지원되는 경우 0)</li>><>< values[4] : 각 속도를 나타내는 Euler 벡터의 Y 구성 요소(지원되는 경우 0)</li li><> value[5] : 각도 속도를 나타내는 Euler 벡터의 Z 구성 요소(지원되는 경우 0)</li></ul>

<h4>android.hardware.Sensor#TYPE_ACCELEROMETER_LIMITED_AXES Sensor.TYPE_ACCELEROMETER_LIMITED_AXES: </h4> 는 TYPE_ACCELEROMETER 해당하지만 하나 또는 두 개의 축이 지원되지 않는 경우를 지원합니다.

마지막 세 값은 지정된 축의 가속 값이 지원되는지 여부를 나타냅니다. 값 1.0은 축이 지원됨을 나타내고 값이 0이면 지원되지 않음을 의미합니다. 지원되는 축은 빌드 시 결정되어야 하며 이러한 값은 런타임 중에 변경되지 않습니다.

지원되지 않는 축의 가속 값은 0으로 설정됩니다.

android.hardware.Sensor#TYPE_ACCELEROMETER와 비슷합니다.

<ul>li 값[0]: x축에서 가속에서 Gx를 뺀 값(지원되는 경우)</li li>>< 값[1]: 가속에서 y축에서 Gy를 뺀 값(지원되는 경우)</li><li> 값[2]: 가속 z축에서 Gz를 뺀 값(지원되는 경우)</li li<>> 값[3]: x-axis</li li><> 값에 대해 지원되는 가속[4]: y축</li li>>< 값에 대해 지원되는 가속[5]:>< z축</li></ul에 지원되는 가속>

<h4>android.hardware.Sensor#TYPE_GYROSCOPE_LIMITED_AXES Sensor.TYPE_GYROSCOPE_LIMITED_AXES: </h4> 는 TYPE_GYROSCOPE 동일하지만 하나 또는 두 개의 축이 지원되지 않는 경우를 지원합니다.

마지막 세 값은 지정된 축의 각 속도 값이 지원되는지 여부를 나타냅니다. 값 1.0은 축이 지원됨을 나타내고 값이 0이면 지원되지 않음을 의미합니다. 지원되는 축은 빌드 시 결정되어야 하며 이러한 값은 런타임 중에 변경되지 않습니다.

지원되지 않는 축의 각 속도 값은 0으로 설정됩니다.

android.hardware.Sensor#TYPE_GYROSCOPE와 비슷합니다.

<ul>li 값[0]: x축 주위의 Angular 속도(지원되는 경우)</li li>>< 값[1]: y축 주위의 각도 속도(지원되는 경우)</li li<>> 값[2]: z축 주위의 Angular 속도 (지원되는 경우)</li li><> 값[3]: x-axis</li li>>< 값에 대해 지원되는 Angular 속도[4]: y축</li li<>> 값에 대해 지원되는 Angular 속도[5]: z축</li><에 지원되는 Angular 속도/>< ul>

<h4>android.hardware.Sensor#TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED Sensor.TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED: </h4> 는 TYPE_ACCELEROMETER_UNCALIBRATED 해당하지만 하나 또는 두 개의 축이 지원되지 않는 경우를 지원합니다.

마지막 세 값은 지정된 축의 가속 값이 지원되는지 여부를 나타냅니다. 값 1.0은 축이 지원됨을 나타내고 값이 0이면 지원되지 않음을 의미합니다. 지원되는 축은 빌드 시 결정되어야 하며 이러한 값은 런타임 중에 변경되지 않습니다.

지원되지 않는 축의 가속 값 및 바이어스 값은 0으로 설정됩니다.

<ul>li 값[0]: 바이어스 보정 없이 x_uncalib(지원되는 경우)</li li><> 값[1]: 바이어스 보정 없이 y_uncalib(지원되는 경우)</li li><> 값[2]: 바이어스 보정 없이 z_uncalib(지원되는 경우)<. /li><li> 값[3]: 예상 x_bias(지원되는 경우)</li li<>> 값[4]: 예상 y_bias(지원되는 경우)</li><li> 값[5]: 예상 z_bias(지원되는 경우)</li><><li> values[6]: x-axis</li li><> 값에 대해 지원되는 가속[7]: y축</li li<>> 값에 대해 지원되는 가속[8]: z-축</li></ul에 지원되는 가속>

<h4>android.hardware.Sensor#TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED Sensor.TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED: </h4> 는 TYPE_GYROSCOPE_UNCALIBRATED 동일하지만 하나 또는 두 개의 축이 지원되지 않는 경우를 지원합니다.

마지막 세 값은 지정된 축의 각 속도 값이 지원되는지 여부를 나타냅니다. 값 1.0은 축이 지원됨을 나타내고 값이 0이면 지원되지 않음을 의미합니다. 지원되는 축은 빌드 시 결정되어야 하며 이러한 값은 런타임 중에 변경되지 않습니다.

지원되지 않는 축의 각도 속도 값과 드리프트 값은 0으로 설정됩니다.

<ul>li 값[0]: X 축 주위의 Angular 속도(w/o 드리프트 보정)(지원되는 경우)</li li><> 값[1]: Y축 주위의 각도 속도(드리프트 보정)(지원되는 경우)< /li><li> 값[2]: Z 축(지원되는 경우)</li li><> 값[3]: X축 주위의 예상 드리프트(지원되는 경우)</li<>li> 값[4] 주위의 Angular 속도(w/o 드리프트 보정) :>< Y축 주위의 예상 드리프트(지원되는 경우)</li li><> 값[5]: Z 축 주위의 예상 드리프트(지원되는 경우)</li<>li> 값[6]: x축</li li<>> 값에 대해 지원되는 Angular 속도[7]: y축</li li><> 값에 대해 지원되는 Angular 속도[8]: z축</li<>/ul></p에 지원되는 Angular 속도>

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

이 유형의 센서는 디바이스가 실제 북쪽을 기준으로 가리키는 방향을 도 단위로 측정합니다. 값은 0.0(포함)에서 360.0(전용) 사이여야 하며 0은 북쪽, 90 동쪽, 180 남쪽 및 서쪽 270을 나타냅니다.

정확도는 68% 신뢰도로 정의됩니다. 기본 분포가 Gaussian 정상으로 간주되는 경우 이는 하나의 표준 편차로 간주됩니다. 예를 들어 제목이 60도를 반환하고 정확도가 10도를 반환하는 경우 실제 제목이 50도에서 70도 사이일 확률은 68%입니다.

<ul><li> 값[0]: 측정된 제목(도)입니다.</li li><> 값[1]: 제목 정확도(도)입니다.</li></ul>

에 대한 android.hardware.SensorEvent.valuesJava 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상

추가 정보