summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorEva Chen <evaschen@google.com>2022-01-10 20:13:28 -0800
committerEva Chen <evaschen@google.com>2022-02-05 22:39:48 -0800
commit5f459046caf8b8ae25be83ce695eaea1bc7e73ef (patch)
tree07255bd87be5fb635f778f0ca7dc2fa9c9a89e6e /core/java
parentc871906b60c86ce26769fbeb72e3d5b464ed158b (diff)
Add TYPE_HEADING sensor type to sensor framework.
Bug: 189983308 Test: Compiled Change-Id: I183f176352fd6e08025647638cee35fd1600f3f0
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/hardware/Sensor.java19
-rw-r--r--core/java/android/hardware/SensorEvent.java18
2 files changed, 37 insertions, 0 deletions
diff --git a/core/java/android/hardware/Sensor.java b/core/java/android/hardware/Sensor.java
index 166ae451fb6d..0d3aaf575729 100644
--- a/core/java/android/hardware/Sensor.java
+++ b/core/java/android/hardware/Sensor.java
@@ -794,6 +794,21 @@ public final class Sensor {
"android.sensor.gyroscope_limited_axes_uncalibrated";
/**
+ * A constant string describing a heading sensor.
+ *
+ * See {@link android.hardware.SensorEvent#values SensorEvent.values} for more details.
+ */
+ public static final int TYPE_HEADING = 42;
+
+ /**
+ * A constant string describing a heading sensor.
+ *
+ * @see #TYPE_HEADING
+ *
+ */
+ public static final String STRING_TYPE_HEADING = "android.sensor.heading";
+
+ /**
* A constant describing all sensor types.
*/
@@ -918,6 +933,7 @@ public final class Sensor {
6, // SENSOR_TYPE_GYROSCOPE_LIMITED_AXES
9, // SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED
9, // SENSOR_TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED
+ 2, // SENSOR_TYPE_HEADING
};
/**
@@ -1385,6 +1401,9 @@ public final class Sensor {
case TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED:
mStringType = STRING_TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED;
return true;
+ case TYPE_HEADING:
+ mStringType = STRING_TYPE_HEADING;
+ return true;
default:
return false;
}
diff --git a/core/java/android/hardware/SensorEvent.java b/core/java/android/hardware/SensorEvent.java
index 7da136f73c53..45d4c09921a6 100644
--- a/core/java/android/hardware/SensorEvent.java
+++ b/core/java/android/hardware/SensorEvent.java
@@ -779,6 +779,24 @@ public class SensorEvent {
* </ul>
* </p>
*
+ * <h4>{@link android.hardware.Sensor#TYPE_HEADING Sensor.TYPE_HEADING}:</h4>
+ *
+ * A sensor of this type measures the direction in which the device is
+ * pointing relative to true north in degrees. The value must be between
+ * 0.0 (inclusive) and 360.0 (exclusive), with 0 indicating north, 90 east,
+ * 180 south, and 270 west.
+ *
+ * Accuracy is defined at 68% confidence. In the case where the underlying
+ * distribution is assumed Gaussian normal, this would be considered one
+ * standard deviation. For example, if heading returns 60 degrees, and
+ * accuracy returns 10 degrees, then there is a 68 percent probability of
+ * the true heading being between 50 degrees and 70 degrees.
+ *
+ * <ul>
+ * <li> values[0]: Measured heading in degrees.</li>
+ * <li> values[1]: Heading accuracy in degrees.</li>
+ * </ul>
+ *
* @see GeomagneticField
*/
public final float[] values;