Freigeben über


SensorEvent.Values Eigenschaft

Definition

Die Länge und der Inhalt des #values values Arrays hängen davon ab, welcher android.hardware.Sensor sensor Typ überwacht wird (siehe auch SensorEvent eine Definition des verwendeten Koordinatensystems).

[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

Eigenschaftswert

Attribute

Hinweise

Die Länge und der Inhalt des #values values Arrays hängen davon ab, welcher android.hardware.Sensor sensor Typ überwacht wird (siehe auch SensorEvent eine Definition des verwendeten Koordinatensystems).

<h4>android.hardware.Sensor#TYPE_ACCELEROMETER Sensor.TYPE_ACCELEROMETER:</h4> Alle Werte befinden sich in SI-Einheiten (m/s^2)

<ul>li-Werte>[0]: Beschleunigung minus Gx auf der x-Achse /li li-Werte>[1]: Beschleunigung minus Gy auf der y-Achse </li li-Werte>><[2]: Beschleunigung minus Gz auf der Z-Achse <</li<><>/ul<>

Ein Sensor dieses Typs misst die auf das Gerät angewendete Beschleunigung (<b>Ad</b>). Konzeptionell erfolgt dies durch Messung von Kräften, die auf den Sensor selbst angewendet werden (<b>Fs</b>) unter Verwendung der Beziehung:

<b><center>Ad = - ∑ Fs / Mass</Mitte></b>

Insbesondere beeinflusst die Schwerkraft immer die gemessene Beschleunigung:

<b><center>Ad = -g - ∑ F / Masse</Mitte></b>

Aus diesem Grund liest der Beschleunigungsmesser eine Größe von <b>g</b> = 9,81 m/s^2 vor, wenn das Gerät auf einem Tisch sitzt (und offensichtlich nicht beschleunigt wird).

Ebenso liest der Beschleunigungsmesser eine Größe von 0 m/s^2 vor, wenn das Gerät im freien Fall auf 9,81 m/s^2 zu Boden beschleunigt wird.

Es sollte offensichtlich sein, dass der Beitrag der Schwerkraft beseitigt werden muss, um die tatsächliche Beschleunigung des Geräts zu messen. Dies kann durch Anwenden eines High-Pass-Filters erreicht werden. Umgekehrt kann ein Low-Pass-Filter verwendet werden, um die Schwerkraft zu isolieren.

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>Beispiele</u>: <ul><li>Wenn das Gerät flach auf einem Tisch liegt und auf der linken Seite nach rechts geschoben wird, ist der x-Beschleunigungswert positiv.</Li>

<li>Wenn das Gerät flach auf einer Tabelle liegt, lautet der Beschleunigungswert +9,81, was der Beschleunigung des Geräts (0 m/s^2) minus der Schwerkraft (-9,81 m/s^2) entspricht.</Li>

<li>Wenn das Gerät flach auf einem Tisch liegt und mit einer Beschleunigung von A m/s^2 in Richtung Himmel geschoben wird, entspricht der Beschleunigungswert A+9,81, die der Beschleunigung des Geräts (+A m/s^2) minus der Schwerkraft (-9,81 m/s^2) entspricht.</li></ul>

<h4>android.hardware.Sensor#TYPE_MAGNETIC_FIELD Sensor.TYPE_MAGNETIC_FIELD:</h4> Alle Werte befinden sich in Mikro-Tesla (uT) und messen das Umgebungsmagnetfeld auf der X-, Y- und Z-Achse.

<h4>android.hardware.Sensor#TYPE_GYROSCOPE Sensor.TYPE_GYROSCOPE: </h4> Alle Werte befinden sich in Bogenmaß/Sekunde und messen die Drehrate um die lokale X-, Y- und Z-Achse des Geräts. Das Koordinatensystem ist identisch mit dem Für den Beschleunigungssensor. Die Drehung ist in der Richtung gegen den Uhrzeigersinn positiv. Das heißt, ein Beobachter, der von einer positiven Position auf der x-, y- oder z-Achse an einem Gerät, das am Ursprung positioniert ist, würde eine positive Drehung melden, wenn das Gerät im Uhrzeigersinn gedreht wurde. Beachten Sie, dass dies die standardmäßige mathematische Definition der positiven Drehung ist und nicht mit der Definition des zuvor angegebenen Rolls übereinstimmt. <ul><li-Werte>[0]: Winkelgeschwindigkeit um die x-Achse </li li-Werte>><[1]: Winkelgeschwindigkeit um die y-Achse </li li-Werte<>>[2]: Winkelgeschwindigkeit um die Z-Achse </li></ul>

In der Regel wird die Ausgabe des Gyroskops im Laufe der Zeit integriert, um eine Drehung zu berechnen, die die Änderung von Winkeln über den Zeitschritt beschreibt, z. B.:

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

In der Praxis führt das Gyroskop-Rauschen und Offset zu einigen Fehlern, die kompensiert werden müssen. Dies erfolgt in der Regel mithilfe der Informationen aus anderen Sensoren, liegt jedoch außerhalb des Umfangs dieses Dokuments.

<h4>android.hardware.Sensor#TYPE_LIGHT Sensor.TYPE_LIGHT:</h4><ul><li-Werte>[0]: Umgebungslichtniveau in SI lux units </li></ul>

<h4>android.hardware.Sensor#TYPE_PRESSURE Sensor.TYPE_PRESSURE:</h4><ul><li-Werte>[0]: Atmosphärischer Druck in hPa (Millibar) </li></ul>

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

<ul><li-Werte>[0]: Näherungssensorabstand <gemessen in Zentimetern /li></ul>

<b>Hinweis:</b> Einige Näherungssensoren unterstützen nur eine binäre Nah - oder Weitmessung . In diesem Fall sollte der Sensor seinen android.hardware.Sensor#getMaximumRange() maximum range Wert im weit entfernten Zustand und einen geringeren Wert im näheren Zustand melden.

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

Ein dreidimensionaler Vektor, der die Richtung und größe der Schwerkraft angibt. Einheiten sind m/s^2. Das Koordinatensystem ist identisch mit dem Beschleunigungssensor.

<b>Hinweis:</b> Wenn sich das Gerät im Ruhezustand befindet, sollte die Ausgabe des Schwerkraftsensors mit dem des Beschleunigungsmessers identisch sein.

<h4>android.hardware.Sensor#TYPE_LINEAR_ACCELERATION Sensor.TYPE_LINEAR_ACCELERATION: </h4> Ein dreidimensionaler Vektor, der die Beschleunigung entlang jeder Geräteachse angibt, nicht einschließlich Schwerkraft. Alle Werte haben Einheiten von m/s^2. Das Koordinatensystem ist identisch mit dem Beschleunigungssensor.

Die Ausgabe der Beschleunigungsmesser-, Schwerkraft- und Linearbeschleunigungssensoren muss der folgenden Beziehung entsprechen:

<ulbeschleunigung>= Schwerkraft + Linearbeschleunigung</ul>

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

Der Drehungsvektor stellt die Ausrichtung des Geräts als Kombination aus einem Winkel und einer Achse dar, in der das Gerät durch einen Winkel gedreht θ um eine Achse < x, y, z>.

Die drei Elemente des Drehvektors sind < x*sin(&θ/2), y*sin(&θ/2), z*sin(&&952/2)>, sodass die Größe des Drehvektors gleich sin(&θ/2) ist und die Richtung des Drehvektors der Richtung der Drehung entspricht.

</p>Die drei Elemente des Drehvektors sind gleich den letzten drei Komponenten einer <b>Einheit</b> Quaternion < cos(θ/2), x*sin(θ/2), y*sin(&θ/2), z*sin(θ/2)>.</p>

Elemente des Drehvektors sind einheitslos. Die x-, y- und z-Achse werden auf die gleiche Weise wie der Beschleunigungssensor definiert.

Das Referenzkoordinatensystem wird als direkte orthonormale Basis definiert, wobei: </p>

<ul><li>X wird als Vektorprodukt <b>Y.Z</b> definiert (Es ist tangential für den Boden an der aktuellen Position des Geräts und ungefähr Punkt Ost).</li li><>Y ist tangential zum Boden an der aktuellen Position des Geräts und zeigt in Richtung magnetischen Norden.</li li><>Z zeigt auf den Himmel und ist senkrecht zum Boden.</li></ul>

<center><img src=".. /.. /.. /images/axis_globe.png" alt="World coordinate-system diagram"." 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-Werte<>>[3]: cos(θ/2) </li li-Werte>><[4]: geschätzte Überschriftengenauigkeit (in Bogenmaß) (-1 wenn nicht verfügbar)</li></ul/ul><>

values[3], ursprünglich optional, wird immer ab SDK-Ebene 18 vorhanden sein. values[4] ist ein neuer Wert, der in SDK-Ebene 18 hinzugefügt wurde.

<h4>android.hardware.Sensor#TYPE_ORIENTATION Sensor.TYPE_ORIENTATION:</h4> Alle Werte sind Winkel in Grad.

<ul><li-Werte> [0]: Azimuth, Winkel zwischen der magnetischen Nordrichtung und der y-Achse, um die Z-Achse (0 bis 359). 0=Nord, 90=Ost, 180=Süd, 270=West </p>

values[1]: Pitch, Drehung um x-Achse (-180 bis 180) mit positiven Werten, wenn die Z-Achse b>zur<> y-Achse bewegt<.

values[2]: Roll, Drehung um die Y-Achse (-90 bis 90), wenn das Gerät im Uhrzeigersinn bewegt wird.

</ul>

<b>Hinweis:</b> Diese Definition unterscheidet sich von <b>Gier, Nicken und Rollen</b> in der Luftfahrt, wobei sich die X-Achse entlang der langen Seite der Ebene befindet (Schwanz bis Nase).

<b>Hinweis:</b> Dieser Sensortyp ist aus älteren Gründen vorhanden, verwenden Und verwenden android.hardware.SensorManager#getRotationMatrix getRotationMatrix() android.hardware.Sensor#TYPE_ROTATION_VECTOR rotation vector sensor type Sie diese Werte in Verbindung mit android.hardware.SensorManager#remapCoordinateSystem remapCoordinateSystem() und android.hardware.SensorManager#getOrientation getOrientation() berechnen Sie stattdessen.

<b>Wichtiger Hinweis:</b> Aus historischen Gründen ist der Rollwinkel in der Richtung im Uhrzeigersinn positiv (mathematisch sollte er in richtung gegen den Uhrzeigersinn positiv sein).

<h4>android.hardware.Sensor#TYPE_RELATIVE_HUMIDITY Sensor.TYPE_RELATIVE_HUMIDITY:</h4><ul><li-Werte> [0]: Relative Umgebungsluftluftfeuchtigkeit in Prozent </li></ul>

Wenn relative Umgebungsluftfeuchte und Umgebungstemperatur gemessen werden, kann der Taupunkt und die absolute Luftfeuchtigkeit berechnet werden.

<u>Dew Point</u>

Der Taupunkt ist die Temperatur, auf die ein bestimmtes Luftpaket bei konstantem barometrischem Druck gekühlt werden muss, damit Wasserdampf in Wasser kondensiert werden kann.

<Zentrum>

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

</center><dl><dt>t<sub>d</sub></dt><dd>dew punkt temperatur in ° C</dd><dt>t</dt><dd>tatsächliche Temperatur in ° C</dd><dt>RH</dt><dd>tatsächliche relative Luftfeuchtigkeit in %</dd>><dt m</dt<>dd>17.62</dd><dt>T<sub>n</sub></dt><dd>243.12 ° C</dd></dl>

Beispiel:

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

<u>Absolute Luftfeuchtigkeit</u>

Die absolute Luftfeuchtigkeit ist die Masse des Wasserdampfs in einem bestimmten Volumen trockener Luft. Die Einheit ist g/m<sup>3</sup>.

<Zentrum>

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 Luftfeuchtigkeit in g/m<sup 3</sup>></dd<>dt>t</dt><dd>actual temperatur in ° C</dd><dt>RH</dt><dd>tatsächliche relative Luftfeuchtigkeit in %</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>

Beispiel:

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-Werte> [0]: Umgebungstemperatur (Raumtemperatur) in Grad Celsius.</li></ul>

<h4>android.hardware.Sensor#TYPE_MAGNETIC_FIELD_UNCALIBRATED Sensor.TYPE_MAGNETIC_FIELD_UNCALIBRATED:</h4> Ähnlich wie android.hardware.Sensor#TYPE_MAGNETIC_FIELD, aber die Harteisenkalibrierung wird separat gemeldet, anstatt in die Messung aufgenommen zu werden. Die Werkskalibrierung und Temperaturkompensation werden weiterhin auf die "nicht kalibrierte" Messung angewendet. Annahmen, dass das Magnetfeld auf die Pole der Erde zurückzuführen ist, wird vermieden.

Das Wertearray ist unten dargestellt: <ul>li-Werte>[0] = x_uncalib </li li-Werte>><[1] = y_uncalib </li li-Werte<>>[2] = z_uncalib </li li-Werte>><[3] = x_bias </li li-Werte>><[4] = y_bias </li li-Werte><>[5] = z_bias </li<>/ul<>

x_uncalib, y_uncalib z_uncalib sind das gemessene Magnetfeld in X-, Y-, Z-Achsen. Weiche Eisen- und Temperaturkalibrierungen werden angewendet. Die Harteisenkalibrierung wird jedoch nicht angewendet. Die Werte sind in Mikro-Tesla (uT).

x_bias, y_bias, z_bias die Eisenverzerrung in X-, Y-, Z-Achsen geschätzt. Jedes Feld ist eine Komponente der geschätzten Harteisenkalibrierung. Die Werte sind in Mikro-Tesla (uT).

Harteisen - Diese Verzerrungen entstehen aufgrund des magnetisierten Eisens, Stahls oder Permanentmagneten auf dem Gerät. Weiches Eisen - Diese Verzerrungen entstehen aufgrund der Interaktion mit dem Magnetfeld der Erde.

<h4>android.hardware.Sensor#TYPE_GAME_ROTATION_VECTOR Sensor.TYPE_GAME_ROTATION_VECTOR:</h4> Identisch mit android.hardware.Sensor#TYPE_ROTATION_VECTOR der Ausnahme, dass es nicht das geomagnetische Feld verwendet. Daher zeigt die Y-Achse nicht nach Norden, sondern auf einen anderen Bezug, dieser Bezug ist zulässig, um dieselbe Größenordnung wie der Gyroskopdrift um die Z-Achse zu driften.

Im idealen Fall meldet ein Telefon, das gedreht und zur gleichen realen Ausrichtung zurückkehrt, den gleichen Spieldrehungsvektor (ohne die Verwendung des geomagnetischen Felds der Erde). Die Ausrichtung kann sich jedoch etwas im Laufe der Zeit verdriften. Eine detaillierte Beschreibung der Werte finden Sie unter.See android.hardware.Sensor#TYPE_ROTATION_VECTOR for a detailed description of the values. Dieser Sensor hat nicht den geschätzten Genauigkeitswert für Überschriften.

<h4>android.hardware.Sensor#TYPE_GYROSCOPE_UNCALIBRATED Sensor.TYPE_GYROSCOPE_UNCALIBRATED:</h4> Alle Werte befinden sich in Bogenmaß/Sekunde und messen die Drehrate um die X-, Y- und Z-Achse. Eine Schätzung der Abweichung auf jeder Achse wird ebenfalls gemeldet.

Es wird keine Gyroabweichungskorrektur durchgeführt. Die Werkskalibrierung und Temperaturkompensation wird weiterhin auf die Drehrate (Winkelgeschwindigkeiten) angewendet.

Das Koordinatensystem ist identisch mit der für die android.hardware.Sensor#TYPE_ACCELEROMETER Drehung verwendeten Drehung ist in gegen den Uhrzeigersinn (Rechtsregel) positiv. Das heißt, ein Beobachter, der von einer positiven Position auf der x-, y- oder z-Achse an einem Gerät, das am Ursprung positioniert ist, würde eine positive Drehung melden, wenn das Gerät im Uhrzeigersinn gedreht wurde. Der Bereich wäre mindestens 17,45 Rad/s (ie: ~1000 deg/s). <ul>li-Werte>[0] : Winkelgeschwindigkeit (w/o Driftkompensation) um die X-Achse in Rad/s </li li-Werten>><[1] : Winkelgeschwindigkeit (w/o Driftkompensation) um die Y-Achse in Rad/s </li li-Werten>[2] : Winkelgeschwindigkeit (w/o Driftkompensation) um die Z-Achse in Rad/s </li li-Werten<>>[3] : geschätzte Abweichung um die X-Achse in Rad/s </li><li-Werten><>[4] :< geschätzte Abweichung um die Y-Achse in Rad/s </li li-Werten<>>[5] : geschätzte Abweichung um die Z-Achse in rad/s </li></ul>

<b>Pro Tipp:</b> Verwenden Sie immer die Länge des Wertearrays beim Ausführen von Vorgängen. In früheren Versionen war dies immer 3, was sich jetzt geändert hat.

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

Ein TYPE_POSE_6DOF-Ereignis besteht aus einer Drehung, die als Quaternion ausgedrückt wird, und einer Übersetzung, die in SI-Einheiten ausgedrückt wird. Das Ereignis enthält auch eine Delta-Drehung und Übersetzung, die zeigt, wie sich die Pose des Geräts seit der vorherigen Sequenznummerierung geändert hat. Das Ereignis verwendet die kanonischen Android-Sensorachsen.

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

<li-Werte> [4]: Übersetzung entlang der x-Achse von einem beliebigen Ursprung. </li li-Werte><>[5]: Übersetzung entlang der y-Achse von einem beliebigen Ursprung. </li li-Werte><>[6]: Übersetzung entlang der Z-Achse von einem beliebigen Ursprung. </Li>

<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-Werte> [11]: Deltaübersetzung entlang der x-Achse. </li li-Werte><>[12]: Deltaübersetzung entlang der y-Achse. </li li-Werte><>[13]: Delta-Übersetzung entlang der Z-Achse. </Li>

<li-Werte> [14]: Sequenznummer </li>

</ul>

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

Ein TYPE_STATIONARY_DETECT Ereignis wird erzeugt, wenn das Gerät mindestens 5 Sekunden lang mit einer maximalen Latenz von 5 zusätzlichen Sekunden stationiert wurde. ie: Es kann von 5 bis 10 Sekunden dauern, bis das Gerät im Ruhezustand war, um dieses Ereignis auszulösen.

Der einzige zulässige Wert ist 1,0.

<ul><li-Werte> [0]: 1,0 </li></ul>

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

Ein TYPE_MOTION_DETECT Ereignis wird erzeugt, wenn das Gerät mindestens 5 Sekunden lang mit einer maximalen Latenz von 5 zusätzlichen Sekunden in Bewegung war. ie: Es kann von 5 bis 10 Sekunden dauern, bis das Gerät im Ruhezustand war, um dieses Ereignis auszulösen.

Der einzige zulässige Wert ist 1,0.

<ul><li-Werte> [0]: 1,0 </li></ul>

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

Ein Sensor dieses Typs gibt jedes Mal ein Ereignis zurück, wenn ein Herzschlag-Höchstwert erkannt wird.

Der Peak hier entspricht ideal dem positiven Höchstwert im QRS-Komplex eines EKG-Signals.

<ul><li-Werte> [0]: Konfidenz</li></ul>

Ein Konfidenzwert von 0,0 gibt eine vollständige Unsicherheit an – dass ein Höchstwert so wahrscheinlich am angegebenen Zeitstempel liegt wie an einer anderen Stelle. Ein Konfidenzwert von 1,0 zeigt sicherlich vollständig an - dass ein Höchstwert völlig unwahrscheinlich ist, an einer anderen Stelle im QRS-Komplex zu sein.

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

Ein Sensor dieses Typs gibt jedes Mal ein Ereignis zurück, wenn das Gerät von Off-Body zu On-Body und von On-Body zu Off-Body wechselt (z. B. ein tragbares Gerät, das aus dem Handgelenk entfernt wird, würde ein Ereignis auslösen, das einen Off-Body-Übergang angibt). Das zurückgegebene Ereignis enthält einen einzelnen Wert, um den Status des Offtexts anzugeben:

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

Gültige Werte für off-body-Zustand: <ul<>li> 1.0 (Gerät ist on-body)</li li>>< 0,0 (Gerät ist off-body)</li></ul>

Wenn ein Sensor dieses Typs aktiviert wird, muss er das anfängliche On-Body- oder Off-Body-Ereignis liefern, das den aktuellen Gerätezustand innerhalb von 5 Sekunden nach der Aktivierung des Sensors darstellt.

Dieser Sensor muss in der Lage sein, innerhalb von 1 Sekunde, der vom Körper entfernt wird, einen On-Body-Übergang zu erkennen und zu melden, und muss in der Lage sein, einen Off-Body-Übergang innerhalb von 5 Sekunden nach dem Rückabsetzen des Geräts auf den Körper zu erkennen und zu melden.

<h4>android.hardware.Sensor#TYPE_ACCELEROMETER_UNCALIBRATED Sensor.TYPE_ACCELEROMETER_UNCALIBRATED:</h4> Alle Werte befinden sich in SI-Einheiten (m/s^2)

Ähnlich wie android.hardware.Sensor#TYPE_ACCELEROMETERdie Werkskalibrierung und Temperaturkompensation wird weiterhin auf die "nicht kalibrierte" Messung angewendet.

Das Wertearray ist unten dargestellt: <ul>li-Werte>[0] = x_uncalib ohne Verzerrungsausgleich </li li-Werte>><[1] = y_uncalib ohne Verzerrungskompensation /li li-Werte><>[2] = z_uncalib ohne Verzerrungsausgleich <</li li-Werte>><[3] = geschätzte x_bias </li li-Werte>><[4] = geschätzte y_bias </li li-Werte<>>[5] = geschätzte z_bias </li<>/ul<>

x_uncalib, y_uncalib, sind z_uncalib die gemessene Beschleunigung in X-, Y-, Z-Achsen ähnlich der android.hardware.Sensor#TYPE_ACCELEROMETER, ohne Verzerrungskorrektur (Factory Bias Compensation und jegliche Temperaturkompensation ist zulässig). x_bias, y_bias, sind z_bias die geschätzten Verzerrungen.

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

Ein Sensor dieses Typs misst den Winkel in Grad zwischen zwei integralen Teilen des Geräts. Es wird erwartet, dass die Bewegung eines von diesem Sensortyp gemessenen Schiebeges die Art und Weise ändert, in der der Benutzer mit dem Gerät interagieren kann, z. B. durch Das Entfalten oder Einblenden einer Anzeige.

<ul><li-Werte>[0]: Gemessener Hingewinkel zwischen 0 und 360 Grad einschließlich</li/ul><>

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

Ein Sensor dieses Typs misst die Ausrichtung des Kopfes eines Benutzers relativ zu einem beliebigen Bezugsrahmen sowie die Drehrate.

Ereignisse, die von diesem Sensor erzeugt werden, folgen einem speziellen kopfzentrierten Koordinatenrahmen, wobei: ul>li Die X-Achse durch die Ohren des Benutzers schneidet, wobei die positive X-Richtung aus dem rechten Ohr</Li<>> des Benutzers ausgeht Die Y-Achse kreuzt von der Rückseite des Kopfes des Benutzers durch die Nase, mit der positiven Richtung, die sich aus der Nase erstreckt,><< und die X/Y-Ebene, die nominal parallel zum Boden ist, wenn der Benutzer aufrecht ist und gerade vor</li<>li> Sieht die Z-Achse vom Hals über den Kopf des Benutzers, wobei die positive Richtung vom oberen Rand des Kopfes</li></ul ausgeht>

Die Daten werden in der Euler-Vektordarstellung bereitgestellt, bei der es sich um einen Vektor handelt, dessen Richtung die Drehachse und die Größe des Winkels angibt, der um diese Achse gedreht werden soll, in Bogenmaß.

Die ersten drei Elemente stellen die Transformation aus dem (willkürlichen, möglicherweise langsam driftenden) Referenzrahmen auf den Kopfrahmen bereit. Die Größe dieses Vektors liegt im Bereich [0, π] Bogenmaß, während sich der Wert einzelner Achsen im Bereich [-π, π] befindet. Die nächsten drei Elemente stellen optional die geschätzte Drehgeschwindigkeit des Kopfes des Benutzers relativ zu sich selbst in Bogenmaß pro Sekunde bereit. Wenn ein bestimmter Sensor die Bestimmung der Geschwindigkeit nicht unterstützt, werden diese Elemente auf 0 festgelegt.

<ul>li-Werte>[0] : X-Komponente des Euler-Vektors, der Drehungs<-/Li-Werte>>< darstellt[1] : Y-Komponente des Euler-Vektors, der Drehung<<><>/Li-Werte><> darstellt[3] : X-Komponente des Euler-Vektors, die Winkelgeschwindigkeit darstellt (sofern unterstützt, andernfalls 0)</li li li>><< values[4] : Y-Komponente des Euler-Vektors, die Winkelgeschwindigkeit darstellt (sofern unterstützt, andernfalls 0)</li li-Werte><>[5] : Z-Komponente des Euler-Vektors, die Winkelgeschwindigkeit darstellt (sofern unterstützt, andernfalls 0)</li></ul>

<h4>android.hardware.Sensor#TYPE_ACCELEROMETER_LIMITED_AXES Sensor.TYPE_ACCELEROMETER_LIMITED_AXES: </h4> Entspricht TYPE_ACCELEROMETER, aber unterstützende Fälle, in denen eine oder zwei Achsen nicht unterstützt werden.

Die letzten drei Werte stellen dar, ob der Beschleunigungswert für eine bestimmte Achse unterstützt wird. Ein Wert von 1,0 gibt an, dass die Achse unterstützt wird, während ein Wert von 0 bedeutet, dass sie nicht unterstützt wird. Die unterstützten Achsen sollten zur Erstellungszeit bestimmt werden, und diese Werte werden während der Laufzeit nicht geändert.

Die Beschleunigungswerte für nicht unterstützte Achsen werden auf 0 festgelegt.

Vergleichbar zu android.hardware.Sensor#TYPE_ACCELEROMETER.

<ul>li values[0]: Acceleration minus Gx on the x-axis (if supported)</li li>>< values[1]: Acceleration minus Gy on the y-axis (if supported)</li li<>> values[2]: Acceleration minus Gz on the z-axis (if supported)</li<>li> values[3]: Acceleration supported for x-axis</li li<>> values[4]: Acceleration supported for y-axis</li li>>< values[5]:>< Unterstützte Beschleunigung für z-Achse</li></ul>

<h4>android.hardware.Sensor#TYPE_GYROSCOPE_LIMITED_AXES Sensor.TYPE_GYROSCOPE_LIMITED_AXES: </h4> Entspricht TYPE_GYROSCOPE, aber unterstützende Fälle, in denen eine oder zwei Achsen nicht unterstützt werden.

Die letzten drei Werte stellen dar, ob der Winkelgeschwindigkeitswert für eine bestimmte Achse unterstützt wird. Ein Wert von 1,0 gibt an, dass die Achse unterstützt wird, während ein Wert von 0 bedeutet, dass sie nicht unterstützt wird. Die unterstützten Achsen sollten zur Erstellungszeit bestimmt werden, und diese Werte werden während der Laufzeit nicht geändert.

Die Winkelgeschwindigkeitswerte für nicht unterstützte Achsen werden auf 0 festgelegt.

Vergleichbar zu android.hardware.Sensor#TYPE_GYROSCOPE.

<ul><li-Werte>[0]: Winkelgeschwindigkeit um die x-Achse (sofern unterstützt)</li li-Werte<>>[1]: Winkelgeschwindigkeit um die y-Achse (sofern unterstützt)/li li-Werte>><[2]: Winkelgeschwindigkeit um die Z-Achse (wenn unterstützt)< if supported)</li li>>< values[3]: Angular speed supported for x-axis</li li<>> values[4]: Angular speed supported for y-axis</li li><> values[5]: Angular speed supported for z-axis</li/>< Ul>

<h4>android.hardware.Sensor#TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED Sensor.TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED: </h4> Entspricht TYPE_ACCELEROMETER_UNCALIBRATED, aber unterstützende Fälle, in denen eine oder zwei Achsen nicht unterstützt werden.

Die letzten drei Werte stellen dar, ob der Beschleunigungswert für eine bestimmte Achse unterstützt wird. Ein Wert von 1,0 gibt an, dass die Achse unterstützt wird, während ein Wert von 0 bedeutet, dass sie nicht unterstützt wird. Die unterstützten Achsen sollten zur Erstellungszeit bestimmt werden, und diese Werte werden während der Laufzeit nicht geändert.

Die Beschleunigungswerte und Biaswerte für nicht unterstützte Achsen werden auf 0 festgelegt.

<ul><li-Werte>[0]: x_uncalib ohne Verzerrungsausgleich (sofern unterstützt)</li li-Werte><>[1]: y_uncalib ohne Verzerrungskompensation (sofern unterstützt)</li li-Werte<>>[2]: z_uncalib ohne Verzerrungskompensation (sofern unterstützt) )</li li-Werte<>>[3]: geschätzte x_bias (sofern unterstützt)</li li-Werte><>[4]: geschätzte y_bias (sofern unterstützt)</li li-Werte<>>[5]: geschätzte z_bias (sofern unterstützt)</li><li-Werte>[6]: Für x-Achse/Li li-Werte>>< unterstützte Beschleunigung[7]: Für y-Achse</Li li-Werte><> unterstützte Beschleunigung[8]: Beschleunigung für z-Achse<</li/ul><>

<h4>android.hardware.Sensor#TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED Sensor.TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED: </h4> Entspricht TYPE_GYROSCOPE_UNCALIBRATED, aber unterstützende Fälle, in denen eine oder zwei Achsen nicht unterstützt werden.

Die letzten drei Werte stellen dar, ob der Winkelgeschwindigkeitswert für eine bestimmte Achse unterstützt wird. Ein Wert von 1,0 gibt an, dass die Achse unterstützt wird, während ein Wert von 0 bedeutet, dass sie nicht unterstützt wird. Die unterstützten Achsen sollten zur Erstellungszeit bestimmt werden, und diese Werte werden während der Laufzeit nicht geändert.

Die Winkelgeschwindigkeitswerte und Driftwerte für nicht unterstützte Achsen werden auf 0 festgelegt.

<ul>li values[0]: Angular speed (w/o drift compensation) around the X axis (if supported)</li li><> values[1]: Angular speed (w/o drift compensation) around the Y axis (if supported)</li li><> values[2]: Angular speed (w/o drift compensation) around the Z axis (if supported)</li li>>< values[3]: estimated drift around X axis (if supported)</li>>< values[4]:>< geschätzte Abweichung um die Y-Achse (sofern unterstützt)</li li-Werte>><[5]: geschätzte Abweichung um die Z-Achse (sofern unterstützt)</li li-Werte><>[6]: Für x-Achse</li li-Werte<>> unterstützte Winkelgeschwindigkeit[7]: Für y-Achse</li li-Werte><> unterstützte Winkelgeschwindigkeit[8]: Angular-Geschwindigkeit unterstützt für z-Achse</li<>/ul></p>

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

Ein Sensor dieses Typs misst die Richtung, in der das Gerät relativ zum wahren Norden in Grad zeigt. Der Wert muss zwischen 0,0 (einschließlich) und 360,0 (exklusiv) liegen, wobei 0 auf Nord, 90 Ost, 180 Süd und 270 West hinweist.

Genauigkeit wird bei 68 % Konfidenz definiert. In dem Fall, in dem die zugrunde liegende Verteilung als gaussische Normalität angenommen wird, wird dies als eine Standardabweichung betrachtet. Wenn die Überschrift beispielsweise 60 Grad zurückgibt und die Genauigkeit 10 Grad zurückgibt, gibt es eine Wahrscheinlichkeit von 68 Prozent der wahren Überschrift zwischen 50 Grad und 70 Grad.

<ul><li-Werte>[0]: Gemessene Überschrift in Grad.</li li-Werte>><[1]: Überschriftengenauigkeit in Grad.</li></ul>

Java-Dokumentation für android.hardware.SensorEvent.values.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Weitere Informationen