summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Nick Vaccaro <nvaccaro@google.com> 2017-02-14 19:21:33 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-02-14 19:21:37 +0000
commit710a285110c9fbe4296a7afc9b2923d66f00806b (patch)
treea3fcdf3b49962bf0e2dfb132511094b20a74340a
parent7776844d77c8a932930f0dee9e95d7cba10baef8 (diff)
parent6432bf7a4f6c8276a42008a557fc7c0377911342 (diff)
Merge "Sensors: Add LOW_LATENCY_OFFBODY_DETECT sensor API"
-rw-r--r--api/current.txt2
-rw-r--r--api/system-current.txt2
-rw-r--r--api/test-current.txt2
-rw-r--r--core/java/android/hardware/Sensor.java23
-rw-r--r--core/java/android/hardware/SensorEvent.java36
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)