次の方法で共有


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 values[0]: x 軸 /li li><> 値の加速度マイナス Gx[1]: y 軸 <</li><li> 値の加速度マイナス Gy[2]: z 軸 </li></ul の加速度マイナス Gz><>

この種類のセンサーは、デバイスに適用される加速度を測定します (<b>Ad</b>)。 概念的には、次の関係を使用してセンサー自体 (<b>Fs</b>) に適用される力を測定することによって行われます。

<b><center>Ad = - >#8721;Fs/mass</center></b>

特に、重力は常に測定された加速度に影響します。

<b><center>Ad = -g - >#8721;F/ mass</center></b>

このため、デバイスがテーブルに座っているとき (明らかに加速していない場合)、加速度計は b>g</b> = 9.81 m/s^2 の<大きさを読み取ります

同様に、デバイスが自由落下状態にあり、9.81 m/s^2 で地面に向かって危険に加速する場合、加速度計は 0 m/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 で、デバイスの加速度 (0 m/s^2) から重力 (-9.81 m/s^2) を<引いた値に対応します。/李>

<li>デバイスがテーブル上に平らで、加速度が A m/s^2 の空に向かって押されると、加速度の値は、デバイスの加速度 (+A m/s^2) から重力 (-9.81 m/s^2) を引いた A+9.81 に相当します。</li></ul>

<h4>android.hardware.Sensor#TYPE_MAGNETIC_FIELD Sensor.TYPE_MAGNETIC_FIELD:</h4> すべての値はマイクロテスラ (uT) にあり、X、Y、Z 軸の周囲磁場を測定します。

<h4>android.hardware.Sensor#TYPE_GYROSCOPE Sensor.TYPE_GYROSCOPE: </h4> すべての値はラジアン/秒で、デバイスのローカル X、Y、Z 軸の周りの回転率を測定します。 座標系は、加速度センサーに使用されるのと同じです。 回転は反時計回りの方向に正です。 つまり、原点上に配置されたデバイスの x、y、または z 軸の正の位置から見ているオブザーバーは、デバイスが反時計回りに回転しているように見える場合に正の回転を報告します。 これは正の回転の標準的な数学的定義であり、前述のロールの定義には一致しないことに注意してください。 <ul>li values[0]: x 軸 </li li><> 値を中心とする角速度[1]: y 軸 </li li<>> 値を中心とする角度速度[2]: z 軸 </li></ul の周りの角速度><>

通常、ジャイロスコープの出力は時間の経過と同時に統合され、時間ステップでの角度の変化を説明する回転を計算します。次に例を示します。

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>値[0]: SI lux 単位 <の環境光レベル /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>。

回転ベクトルの 3 つの要素は < です。x*sin(&>#952/2)、y*sin(>#952/2)、z*sin(>#952/2)>。回転ベクトルの大きさが sin(&>#952/2) に等しく、回転ベクトルの方向が回転軸の方向と等しくなります。

</p>回転ベクトルの 3 つの要素は、b 単位</b>> 四元数 > の最後の <3 つの要素と等しくなります。cos(&>#952/2)、x*sin(>#952/2)、y*sin(>#952/2)、z*sin(>#952/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(&>#952/2) </li<>li> values[1]: y*sin(&>#952/2) </li li><> values[2]: z*sin(>#2) 952/2) </li li>>< values[3]: cos(&>#952/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 軸 (0 ~ 359) の周りの磁気北方向と y 軸の間の角度。 0 =North、90=East、180=South、270=West </p>

values[1]: z 軸が b>を y 軸に向かって<移動<>すると、正の値を持つ、x 軸 (-180 から 180) を中心としたピッチ、回転。

values[2]: デバイスが時計回りに移動すると、y 軸 (-90 から 90) の周りの回転が増加します。

</ul>

<b>注:</b> この定義は、X軸が平面の長い側(尾から鼻)に沿っている航空で使用されるb>ヨー、ピッチ、ロール</b>とは<異なります。

<b>注:</b> このセンサーの種類は、従来の理由から存在します。代わりに、これらの値を使用android.hardware.Sensor#TYPE_ROTATION_VECTOR rotation vector sensor typeandroid.hardware.SensorManager#getRotationMatrix getRotationMatrix()android.hardware.SensorManager#getOrientation getOrientation()、組み合わせてandroid.hardware.SensorManager#remapCoordinateSystem remapCoordinateSystem()計算してください。

<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><dd>露点温度 >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>絶対湿度 (g/m<sup>3</sup></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><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> 値[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/秒) です。 <ul>li 値[0] : rad/s /li li 値[1] の X 軸周りの角速度 (w/o ドリフト補正) : 角度速度 (rad/s<</li><><li>> 値[2] の Y 軸の周りの角速度 (w/o ドリフト補正) : 角度速度 (w/o ドリフト補正) (rad/s </li<>li> 値[3] : rad/s </li<>li> 値[4] の X 軸周辺の推定ドリフト:>< 推定誤差は、Y 軸付近の rad/s</li<>値>[5] : z 軸付近の推定ドリフト (rad/s </li></ul)>

<b>Pro Tip:</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(&>#952/2) </li<>li> values[1]: y*sin(&>#952/2) </li<>li> values[2]: z*sin(&>#952/2) </li<>li> values[3]: cos(&>#952/2) </li><>

<li> 値[4]: 任意の原点からの x 軸に沿った平行移動。 </li li><> values[5]: 任意の原点からの y 軸に沿った平行移動。 </li li><> values[6]: 任意の原点からの z 軸に沿った平行移動。 </李>

<li> values[7]: Delta quaternion rotation x*sin(θ/2) </li><li> values[8]: Delta quaternion rotation y*sin(&>#952/2) </li<>li> values[9]: Delta quaternion rotation z*sin(θ/2) </li<>li> values[10]: Delta quaternion rotation cos(&>#952/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>

この種類のセンサーは、デバイスがオフボディからオンボディ、および本体からオフボディに遷移するたびにイベントを返します (たとえば、手首から取り外されたウェアラブル デバイスは、体外の遷移を示すイベントをトリガーします)。 返されるイベントには、本文外の状態を示す 1 つの値が含まれます。

<ul><li> values[0]: off-body state</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 値[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<>/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>

このタイプのセンサーは、デバイスの 2 つの不可欠な部分の間の角度を度単位で測定します。 このセンサーの種類によって測定されるヒンジの動きは、ユーザーがデバイスを操作する方法 (ディスプレイの展開や表示など) を変更することが期待されます。

<ul><li> 値[0]: 0 ~ 360 度のヒンジ角度を測定します(0 ~ 360 度を含む</li></ul)。>

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

このタイプのセンサーは、任意の参照フレームに対するユーザーの頭部の向きと回転速度を測定します。

このセンサーによって生成されるイベントは、<特別な頭部中心の座標フレームに従います。ul><li> X 軸はユーザーの耳を通過し、正の X 方向はユーザーの右耳<から伸びて、><>Y 軸はユーザーの頭の後ろから鼻を通って交差し、正の方向が鼻から伸びて、 X/Y 平面は、ユーザーが直立し、まっすぐ前<を見ているとき、地面に対して名目上平行である/li li<>li> Z 軸は、首からユーザーの頭の上部を通って交差し、正の方向は頭部</li></ul の上部から伸びている>

データはオイラー ベクター表現で提供されます。これは、方向が回転軸を示し、大きさがその軸を中心に回転する角度をラジアンで示すベクトルです。

最初の 3 つの要素は、(任意の、場合によってはゆっくりとドリフトする) 参照フレームからヘッド フレームへの変換を提供します。 このベクトルの大きさは範囲 [0, >] ラジアンで、個々の軸の値は範囲 [->, π] です。 次の 3 つの要素は、必要に応じて、1 秒あたりのラジアン単位で、自身に対するユーザーの頭部の推定回転数を提供します。 特定のセンサーが速度の決定をサポートしていない場合、これらの要素は 0 に設定されます。

<ul>li値[0] : 回転</li><li>値を表すオイラーベクターのX成分[1] : 回転</li><li>値を表すオイラーベクターのY成分[2] : 回転</li<>li>値を表すオイラーベクターのZ成分[3] : 角速度を表すオイラーベクターのX成分(サポートされている場合、それ以外の場合は0)</li li><>><values[4] : 角速度を表すオイラー ベクトルの Y 成分 (サポートされている場合は 0)</li><li> 値[5] : 角速度を表すオイラー ベクトルの Z 成分 (サポートされている場合は 0)</li></ul>

<h4>android.hardware.Sensor#TYPE_ACCELEROMETER_LIMITED_AXES Sensor.TYPE_ACCELEROMETER_LIMITED_AXES: </h4> TYPE_ACCELEROMETERに相当しますが、1 つまたは 2 つの軸がサポートされていないサポートケース。

最後の 3 つの値は、特定の軸の加速度値がサポートされているかどうかを表します。 値 1.0 は軸がサポートされていることを示し、値 0 はサポートされていないことを意味します。 サポートされている軸はビルド時に決定する必要があり、実行時にこれらの値は変更されません。

サポートされていない軸の加速度値は 0 に設定されます。

android.hardware.Sensor#TYPE_ACCELEROMETER と似ています。

<ul>li values[0]: x 軸の加速度マイナス Gx (サポートされている場合)</li li>>< 値[1]: y 軸の加速度マイナス Gy (サポートされている場合)</li li<>> 値[2]: z 軸の加速度マイナス Gz (サポートされている場合)</li><li> 値[3]:x 軸</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 つまたは 2 つの軸がサポートされていないサポートケース。

最後の 3 つの値は、特定の軸の角度速度値がサポートされているかどうかを表します。 値 1.0 は軸がサポートされていることを示し、値 0 はサポートされていないことを意味します。 サポートされている軸はビルド時に決定する必要があり、実行時にこれらの値は変更されません。

サポートされていない軸の角度速度の値は 0 に設定されます。

android.hardware.Sensor#TYPE_GYROSCOPE と似ています。

<ul>li values[0]: x 軸を中心とする角度速度 (サポートされている場合)</li li>>< 値[1]: y 軸を中心とする角度速度 (サポートされている場合)</li<>li> 値[2]: z 軸を中心とする角速度 (場合 supported)</li li>>< values[3]: x 軸</li li<>> 値でサポートされる角速度[4]: y 軸</li<>li> 値でサポートされる角速度[5]: z 軸</li></ に対してサポートされる角速度><ul>

<h4>android.hardware.Sensor#TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED Sensor.TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED: </h4> TYPE_ACCELEROMETER_UNCALIBRATEDに相当しますが、1 つまたは 2 つの軸がサポートされていないサポートケース。

最後の 3 つの値は、特定の軸の加速度値がサポートされているかどうかを表します。 値 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> 値[6]: x 軸</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 つまたは 2 つの軸がサポートされていないサポートケース。

最後の 3 つの値は、特定の軸の角度速度値がサポートされているかどうかを表します。 値 1.0 は軸がサポートされていることを示し、値 0 はサポートされていないことを意味します。 サポートされている軸はビルド時に決定する必要があり、実行時にこれらの値は変更されません。

サポートされていない軸の角度速度値とドリフト値は 0 に設定されます。

<ul>li values[0]: X 軸の周りの角速度 (w/o ドリフト補正) (サポートされている場合)</li li>>< 値[1]: Y 軸 (サポートされている場合)</li><li> 値 [2] の周りの角速度 (w/o ドリフト補正): Z 軸 (サポートされている場合)</li><li> 値 [3]: X 軸 (サポートされている場合)</li<>li> 値[4] の周りの推定ドリフト。>< Y 軸周りの推定誤差 (サポートされている場合)</li li>>< 値[5]: Z 軸 (サポートされている場合)</li li<>> 値 [6] の周りの推定ドリフト:x 軸</li><li> 値でサポートされる角速度[7]: y 軸</li><li> 値に対してサポートされる角度速度[8]: z 軸</li<>/ul></p に対してサポートされる角度速度>

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

この種類のセンサーは、デバイスが真北を指す方向を度単位で測定します。 値は 0.0 (含む) から 360.0 (排他的) の間で、0 は北、90 東、180 南、西 270 を示す値である必要があります。

精度は 68% の信頼度で定義されます。 基になる分布がガウス正規分布と見なされる場合、これは 1 つの標準偏差と見なされます。 たとえば、見出しが 60 度を返し、精度が 10 度を返す場合、真の見出しが 50 度から 70 度の間になる確率は 68% になります。

<ul><li> 値[0]: 度単位で測定された見出し。</li li><> 値[1]: 度単位の見出し精度。</li></ul>

の Java ドキュメントandroid.hardware.SensorEvent.values

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象

こちらもご覧ください