diff --git a/core/api/current.txt b/core/api/current.txt index f30a6eb4fa821..37754e70ea8f9 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -16886,6 +16886,7 @@ package android.hardware { field public static final String STRING_TYPE_GYROSCOPE_LIMITED_AXES = "android.sensor.gyroscope_limited_axes"; field public static final String STRING_TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED = "android.sensor.gyroscope_limited_axes_uncalibrated"; field public static final String STRING_TYPE_GYROSCOPE_UNCALIBRATED = "android.sensor.gyroscope_uncalibrated"; + field public static final String STRING_TYPE_HEADING = "android.sensor.heading"; field public static final String STRING_TYPE_HEAD_TRACKER = "android.sensor.head_tracker"; field public static final String STRING_TYPE_HEART_BEAT = "android.sensor.heart_beat"; field public static final String STRING_TYPE_HEART_RATE = "android.sensor.heart_rate"; @@ -16921,6 +16922,7 @@ package android.hardware { field public static final int TYPE_GYROSCOPE_LIMITED_AXES = 39; // 0x27 field public static final int TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED = 41; // 0x29 field public static final int TYPE_GYROSCOPE_UNCALIBRATED = 16; // 0x10 + field public static final int TYPE_HEADING = 42; // 0x2a field public static final int TYPE_HEAD_TRACKER = 37; // 0x25 field public static final int TYPE_HEART_BEAT = 31; // 0x1f field public static final int TYPE_HEART_RATE = 21; // 0x15 diff --git a/core/java/android/hardware/Sensor.java b/core/java/android/hardware/Sensor.java index 166ae451fb6dd..0d3aaf5757296 100644 --- a/core/java/android/hardware/Sensor.java +++ b/core/java/android/hardware/Sensor.java @@ -793,6 +793,21 @@ public final class Sensor { public static final String STRING_TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED = "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 7da136f73c533..45d4c09921a64 100644 --- a/core/java/android/hardware/SensorEvent.java +++ b/core/java/android/hardware/SensorEvent.java @@ -779,6 +779,24 @@ public class SensorEvent { * *

* + *

{@link android.hardware.Sensor#TYPE_HEADING Sensor.TYPE_HEADING}:

+ * + * 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. + * + * + * * @see GeomagneticField */ public final float[] values;