diff options
| author | 2017-02-14 19:21:33 +0000 | |
|---|---|---|
| committer | 2017-02-14 19:21:37 +0000 | |
| commit | 710a285110c9fbe4296a7afc9b2923d66f00806b (patch) | |
| tree | a3fcdf3b49962bf0e2dfb132511094b20a74340a | |
| parent | 7776844d77c8a932930f0dee9e95d7cba10baef8 (diff) | |
| parent | 6432bf7a4f6c8276a42008a557fc7c0377911342 (diff) | |
Merge "Sensors: Add LOW_LATENCY_OFFBODY_DETECT sensor API"
| -rw-r--r-- | api/current.txt | 2 | ||||
| -rw-r--r-- | api/system-current.txt | 2 | ||||
| -rw-r--r-- | api/test-current.txt | 2 | ||||
| -rw-r--r-- | core/java/android/hardware/Sensor.java | 23 | ||||
| -rw-r--r-- | core/java/android/hardware/SensorEvent.java | 36 |
5 files changed, 62 insertions, 3 deletions
diff --git a/api/current.txt b/api/current.txt index 659c1b85d2f3..bcc3fb35fc66 100644 --- a/api/current.txt +++ b/api/current.txt @@ -14432,6 +14432,7 @@ package android.hardware { field public static final java.lang.String STRING_TYPE_HEART_RATE = "android.sensor.heart_rate"; field public static final java.lang.String STRING_TYPE_LIGHT = "android.sensor.light"; field public static final java.lang.String STRING_TYPE_LINEAR_ACCELERATION = "android.sensor.linear_acceleration"; + field public static final java.lang.String STRING_TYPE_LOW_LATENCY_OFFBODY_DETECT = "android.sensor.low_latency_offbody"; field public static final java.lang.String STRING_TYPE_MAGNETIC_FIELD = "android.sensor.magnetic_field"; field public static final java.lang.String STRING_TYPE_MAGNETIC_FIELD_UNCALIBRATED = "android.sensor.magnetic_field_uncalibrated"; field public static final java.lang.String STRING_TYPE_MOTION_DETECT = "android.sensor.motion_detect"; @@ -14460,6 +14461,7 @@ package android.hardware { field public static final int TYPE_HEART_RATE = 21; // 0x15 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 field public static final int TYPE_MAGNETIC_FIELD = 2; // 0x2 field public static final int TYPE_MAGNETIC_FIELD_UNCALIBRATED = 14; // 0xe field public static final int TYPE_MOTION_DETECT = 30; // 0x1e diff --git a/api/system-current.txt b/api/system-current.txt index a6de1ea30cc3..5ac97c1b062c 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -15026,6 +15026,7 @@ package android.hardware { field public static final java.lang.String STRING_TYPE_HEART_RATE = "android.sensor.heart_rate"; field public static final java.lang.String STRING_TYPE_LIGHT = "android.sensor.light"; field public static final java.lang.String STRING_TYPE_LINEAR_ACCELERATION = "android.sensor.linear_acceleration"; + field public static final java.lang.String STRING_TYPE_LOW_LATENCY_OFFBODY_DETECT = "android.sensor.low_latency_offbody"; field public static final java.lang.String STRING_TYPE_MAGNETIC_FIELD = "android.sensor.magnetic_field"; field public static final java.lang.String STRING_TYPE_MAGNETIC_FIELD_UNCALIBRATED = "android.sensor.magnetic_field_uncalibrated"; field public static final java.lang.String STRING_TYPE_MOTION_DETECT = "android.sensor.motion_detect"; @@ -15056,6 +15057,7 @@ package android.hardware { field public static final int TYPE_HEART_RATE = 21; // 0x15 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 field public static final int TYPE_MAGNETIC_FIELD = 2; // 0x2 field public static final int TYPE_MAGNETIC_FIELD_UNCALIBRATED = 14; // 0xe field public static final int TYPE_MOTION_DETECT = 30; // 0x1e diff --git a/api/test-current.txt b/api/test-current.txt index ebba10ebd4e9..a5265b03e08b 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -14467,6 +14467,7 @@ package android.hardware { field public static final java.lang.String STRING_TYPE_HEART_RATE = "android.sensor.heart_rate"; field public static final java.lang.String STRING_TYPE_LIGHT = "android.sensor.light"; field public static final java.lang.String STRING_TYPE_LINEAR_ACCELERATION = "android.sensor.linear_acceleration"; + field public static final java.lang.String STRING_TYPE_LOW_LATENCY_OFFBODY_DETECT = "android.sensor.low_latency_offbody"; field public static final java.lang.String STRING_TYPE_MAGNETIC_FIELD = "android.sensor.magnetic_field"; field public static final java.lang.String STRING_TYPE_MAGNETIC_FIELD_UNCALIBRATED = "android.sensor.magnetic_field_uncalibrated"; field public static final java.lang.String STRING_TYPE_MOTION_DETECT = "android.sensor.motion_detect"; @@ -14495,6 +14496,7 @@ package android.hardware { field public static final int TYPE_HEART_RATE = 21; // 0x15 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 field public static final int TYPE_MAGNETIC_FIELD = 2; // 0x2 field public static final int TYPE_MAGNETIC_FIELD_UNCALIBRATED = 14; // 0xe field public static final int TYPE_MOTION_DETECT = 30; // 0x1e diff --git a/core/java/android/hardware/Sensor.java b/core/java/android/hardware/Sensor.java index d87c55e1c7c7..8c13cc893cc7 100644 --- a/core/java/android/hardware/Sensor.java +++ b/core/java/android/hardware/Sensor.java @@ -649,9 +649,22 @@ public final class Sensor { * to be in the same order as the HAL. Skipping this sensor */ - /* TYPE_LOW_LATENCY_OFF_BODY_SENSOR - defined as type 34 in the HAL needs to - * be defined in this space. + /** + * A constant describing a low latency off-body detect sensor. + * + * See {@link android.hardware.SensorEvent#values SensorEvent.values} for more details. + * */ + public static final int TYPE_LOW_LATENCY_OFFBODY_DETECT = 34; + + + /** + * A constant string describing a low-latency offbody detector sensor. + * + * @see #TYPE_LOW_LATENCY_OFFBODY_DETECT + */ + public static final String STRING_TYPE_LOW_LATENCY_OFFBODY_DETECT = + "android.sensor.low_latency_offbody"; /** * A constant describing an uncalibrated accelerometer sensor. @@ -669,6 +682,7 @@ public final class Sensor { */ public static final String STRING_TYPE_ACCELEROMETER_UNCALIBRATED = "android.sensor.accelerometer_uncalibrated"; + /** * A constant describing all sensor types. */ @@ -786,7 +800,7 @@ public final class Sensor { 1, // SENSOR_TYPE_HEART_BEAT 2, // SENSOR_TYPE_DYNAMIC_SENSOR_META 16,// skip over additional sensor info type - 1, // reserving for LLOB sensor type + 1, // SENSOR_TYPE_LOW_LATENCY_OFFBODY_DETECT 6, // SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED }; @@ -1195,6 +1209,9 @@ public final class Sensor { case TYPE_DYNAMIC_SENSOR_META: mStringType = STRING_TYPE_DYNAMIC_SENSOR_META; return true; + case TYPE_LOW_LATENCY_OFFBODY_DETECT: + mStringType = STRING_TYPE_LOW_LATENCY_OFFBODY_DETECT; + return true; case TYPE_ACCELEROMETER_UNCALIBRATED: mStringType = STRING_TYPE_ACCELEROMETER_UNCALIBRATED; return true; diff --git a/core/java/android/hardware/SensorEvent.java b/core/java/android/hardware/SensorEvent.java index 9b72757a8737..c0bca97e12b7 100644 --- a/core/java/android/hardware/SensorEvent.java +++ b/core/java/android/hardware/SensorEvent.java @@ -564,6 +564,42 @@ public class SensorEvent { * completely unlikely to be anywhere else on the QRS complex. * </p> * + * <h4>{@link android.hardware.Sensor#TYPE_LOW_LATENCY_OFFBODY_DETECT + * Sensor.TYPE_LOW_LATENCY_OFFBODY_DETECT}:</h4> + * + * <p> + * A sensor of this type returns an event every time the device transitions + * from off-body to on-body and from on-body to off-body (e.g. a wearable + * device being removed from the wrist would trigger an event indicating an + * off-body transition). The event returned will contain a single value to + * indicate off-body state: + * </p> + * + * <ul> + * <li> values[0]: off-body state</li> + * </ul> + * + * <p> + * Valid values for off-body state: + * <ul> + * <li> 1.0 (device is on-body)</li> + * <li> 0.0 (device is off-body)</li> + * </ul> + * </p> + * + * <p> + * When a sensor of this type is activated, it must deliver the initial + * on-body or off-body event representing the current device state within + * 5 seconds of activating the sensor. + * </p> + * + * <p> + * This sensor must be able to detect and report an on-body to off-body + * transition within 1 second of the device being removed from the body, + * and must be able to detect and report an off-body to on-body transition + * within 5 seconds of the device being put back onto the body. + * </p> + * * <h4>{@link android.hardware.Sensor#TYPE_ACCELEROMETER_UNCALIBRATED * Sensor.TYPE_ACCELEROMETER_UNCALIBRATED}:</h4> All values are in SI * units (m/s^2) |