From 51a0c35b5a14705bdf4bda8ffe2def2cb445a71e Mon Sep 17 00:00:00 2001 From: Anthony Stange Date: Thu, 16 Jan 2020 14:56:27 -0500 Subject: [PATCH] Add hinge angle sensor type to sensors framework Adds new hinge angle sensor type that will expose the angle, in degrees, between two displays on a device. Bug: 144139857 Test: Make SDK docs and verify updated wording is present Change-Id: I20e93bc788f06c4dd48d481c368da01b30cc8d4d --- api/current.txt | 2 ++ core/java/android/hardware/Sensor.java | 19 +++++++++++++++++++ core/java/android/hardware/SensorEvent.java | 10 ++++++++++ 3 files changed, 31 insertions(+) diff --git a/api/current.txt b/api/current.txt index 16786ffe701a6..2de94a7e96ba1 100644 --- a/api/current.txt +++ b/api/current.txt @@ -16614,6 +16614,7 @@ package android.hardware { field public static final String STRING_TYPE_GYROSCOPE_UNCALIBRATED = "android.sensor.gyroscope_uncalibrated"; 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"; + field public static final String STRING_TYPE_HINGE_ANGLE = "android.sensor.hinge_angle"; field public static final String STRING_TYPE_LIGHT = "android.sensor.light"; field public static final String STRING_TYPE_LINEAR_ACCELERATION = "android.sensor.linear_acceleration"; field public static final String STRING_TYPE_LOW_LATENCY_OFFBODY_DETECT = "android.sensor.low_latency_offbody_detect"; @@ -16643,6 +16644,7 @@ package android.hardware { field public static final int TYPE_GYROSCOPE_UNCALIBRATED = 16; // 0x10 field public static final int TYPE_HEART_BEAT = 31; // 0x1f field public static final int TYPE_HEART_RATE = 21; // 0x15 + field public static final int TYPE_HINGE_ANGLE = 36; // 0x24 field public static final int TYPE_LIGHT = 5; // 0x5 field public static final int TYPE_LINEAR_ACCELERATION = 10; // 0xa field public static final int TYPE_LOW_LATENCY_OFFBODY_DETECT = 34; // 0x22 diff --git a/core/java/android/hardware/Sensor.java b/core/java/android/hardware/Sensor.java index a71a7b63f30e6..cc4c45699bd4e 100644 --- a/core/java/android/hardware/Sensor.java +++ b/core/java/android/hardware/Sensor.java @@ -692,6 +692,22 @@ public final class Sensor { public static final String STRING_TYPE_ACCELEROMETER_UNCALIBRATED = "android.sensor.accelerometer_uncalibrated"; + /** + * A constant describing a hinge angle sensor. + * + * See {@link android.hardware.SensorEvent#values SensorEvent.values} for more details. + * + */ + public static final int TYPE_HINGE_ANGLE = 36; + + /** + * A constant string describing a hinge angle sensor. + * + * @see #TYPE_HINGE_ANGLE + * + */ + public static final String STRING_TYPE_HINGE_ANGLE = "android.sensor.hinge_angle"; + /** * A constant describing all sensor types. */ @@ -811,6 +827,7 @@ public final class Sensor { 16, // skip over additional sensor info type 1, // SENSOR_TYPE_LOW_LATENCY_OFFBODY_DETECT 6, // SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED + 1, // SENSOR_TYPE_HINGE_ANGLE }; /** @@ -1226,6 +1243,8 @@ public final class Sensor { case TYPE_ACCELEROMETER_UNCALIBRATED: mStringType = STRING_TYPE_ACCELEROMETER_UNCALIBRATED; return true; + case TYPE_HINGE_ANGLE: + mStringType = STRING_TYPE_HINGE_ANGLE; default: return false; } diff --git a/core/java/android/hardware/SensorEvent.java b/core/java/android/hardware/SensorEvent.java index 64c45bf290ec0..5fbf0da8b5a5c 100644 --- a/core/java/android/hardware/SensorEvent.java +++ b/core/java/android/hardware/SensorEvent.java @@ -630,6 +630,16 @@ public class SensorEvent { * x_bias, y_bias, z_bias are the estimated biases. *

* + *

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

+ * + * A sensor of this type measures the angle, in degrees, between two integral parts of the + * device. Movement of a hinge measured by this sensor type is expected to alter the ways in + * which the user may interact with the device, for example by unfolding or revealing a display. + * + * + * * @see GeomagneticField */ public final float[] values;