diff --git a/core/java/android/hardware/Sensor.java b/core/java/android/hardware/Sensor.java index e875864242325..6935174f58d6f 100644 --- a/core/java/android/hardware/Sensor.java +++ b/core/java/android/hardware/Sensor.java @@ -533,6 +533,24 @@ public final class Sensor { @SystemApi public static final String STRING_TYPE_WRIST_TILT_GESTURE = "android.sensor.wrist_tilt_gesture"; + /** + * The current orientation of the device. + *

+ * See {@link android.hardware.SensorEvent#values SensorEvent.values} for more details. + * + * @hide Expected to be used internally for auto-rotate and speaker rotation. + * + */ + public static final int TYPE_DEVICE_ORIENTATION = 27; + + /** + * A constant string describing a device orientation sensor type. + * + * @hide + * @see #TYPE_DEVICE_ORIENTATION + */ + public static final String STRING_TYPE_DEVICE_ORIENTATION = "android.sensor.device_orientation"; + /** * A constant describing all sensor types. */ @@ -618,6 +636,7 @@ public final class Sensor { 1, // SENSOR_TYPE_GLANCE_GESTURE 1, // SENSOR_TYPE_PICK_UP_GESTURE 1, // SENSOR_TYPE_WRIST_TILT_GESTURE + 1, // SENSOR_TYPE_DEVICE_ORIENTATION }; /** @@ -939,6 +958,9 @@ public final class Sensor { case TYPE_TEMPERATURE: mStringType = STRING_TYPE_TEMPERATURE; return true; + case TYPE_DEVICE_ORIENTATION: + mStringType = STRING_TYPE_DEVICE_ORIENTATION; + return true; default: return false; } diff --git a/core/java/android/hardware/SensorEvent.java b/core/java/android/hardware/SensorEvent.java index 906c2a1941d59..9937b2cb2d265 100644 --- a/core/java/android/hardware/SensorEvent.java +++ b/core/java/android/hardware/SensorEvent.java @@ -483,6 +483,20 @@ public class SensorEvent { * on it. In earlier versions, this used to be always 3 which has changed now.

* * @see GeomagneticField + * + *

{@link android.hardware.Sensor#TYPE_DEVICE_ORIENTATION + * Sensor.TYPE_DEVICE_ORIENTATION}:

+ * The current device orientation will be available in values[0]. The only + * available values are: + * */ public final float[] values;