summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Justin Lannin <jlannin@google.com> 2024-10-29 08:12:34 +0000
committer Justin Lannin <jlannin@google.com> 2024-11-06 21:00:14 +0000
commit0f8fc709a33327f98f0a31af5de309cdbef877ae (patch)
tree35b150891d40da914d6d0aedc013f8ce6e57ec9a
parentf06190e7ce43891f16c5e9109dcd265288493b10 (diff)
Health Permissions: Add OP_READ_OXYGEN_SATURATION
Add OP_READ_OXYGEN_SATURATION app op for runtime health permission READ_OXYGEN_SATURATION. Bug: 369876294 Flag: android.permission.flags.platform_oxygen_saturation_enabled Test: atest AppOpDefinitionTest Change-Id: Icb768d6666888d38f89810181da09815ca7ac53f
-rw-r--r--core/api/system-current.txt1
-rw-r--r--core/java/android/app/AppOpsManager.java17
2 files changed, 17 insertions, 1 deletions
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index 2a01ca082832..cd77199844a9 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -705,6 +705,7 @@ package android.app {
field public static final String OPSTR_READ_MEDIA_IMAGES = "android:read_media_images";
field public static final String OPSTR_READ_MEDIA_VIDEO = "android:read_media_video";
field public static final String OPSTR_READ_MEDIA_VISUAL_USER_SELECTED = "android:read_media_visual_user_selected";
+ field @FlaggedApi("android.permission.flags.platform_oxygen_saturation_enabled") public static final String OPSTR_READ_OXYGEN_SATURATION = "android:read_oxygen_saturation";
field @FlaggedApi("android.permission.flags.platform_skin_temperature_enabled") public static final String OPSTR_READ_SKIN_TEMPERATURE = "android:read_skin_temperature";
field public static final String OPSTR_READ_WRITE_HEALTH_DATA = "android:read_write_health_data";
field public static final String OPSTR_RECEIVE_AMBIENT_TRIGGER_AUDIO = "android:receive_ambient_trigger_audio";
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index 38c8583dd024..fd70f4fc3f25 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -1621,9 +1621,12 @@ public class AppOpsManager {
*/
public static final int OP_RANGING = AppOpEnums.APP_OP_RANGING;
+ /** @hide Access to read oxygen saturation. */
+ public static final int OP_READ_OXYGEN_SATURATION = AppOpEnums.APP_OP_READ_OXYGEN_SATURATION;
+
/** @hide */
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
- public static final int _NUM_OP = 152;
+ public static final int _NUM_OP = 153;
/**
* All app ops represented as strings.
@@ -1779,6 +1782,7 @@ public class AppOpsManager {
OPSTR_READ_HEART_RATE,
OPSTR_READ_SKIN_TEMPERATURE,
OPSTR_RANGING,
+ OPSTR_READ_OXYGEN_SATURATION,
})
public @interface AppOpString {}
@@ -2521,6 +2525,11 @@ public class AppOpsManager {
@FlaggedApi(Flags.FLAG_REPLACE_BODY_SENSOR_PERMISSION_ENABLED)
public static final String OPSTR_READ_HEART_RATE = "android:read_heart_rate";
+ /** @hide Access to read oxygen saturation. */
+ @SystemApi
+ @FlaggedApi(Flags.FLAG_PLATFORM_OXYGEN_SATURATION_ENABLED)
+ public static final String OPSTR_READ_OXYGEN_SATURATION = "android:read_oxygen_saturation";
+
/** @hide Access to read skin temperature. */
@SystemApi
@FlaggedApi(Flags.FLAG_PLATFORM_SKIN_TEMPERATURE_ENABLED)
@@ -2608,6 +2617,7 @@ public class AppOpsManager {
// Health
Flags.replaceBodySensorPermissionEnabled() ? OP_READ_HEART_RATE : OP_NONE,
Flags.platformSkinTemperatureEnabled() ? OP_READ_SKIN_TEMPERATURE : OP_NONE,
+ Flags.platformOxygenSaturationEnabled() ? OP_READ_OXYGEN_SATURATION : OP_NONE,
};
/**
@@ -3129,6 +3139,11 @@ public class AppOpsManager {
.setPermission(Flags.rangingPermissionEnabled()?
Manifest.permission.RANGING : null)
.setDefaultMode(AppOpsManager.MODE_ALLOWED).build(),
+ new AppOpInfo.Builder(OP_READ_OXYGEN_SATURATION, OPSTR_READ_OXYGEN_SATURATION,
+ "READ_OXYGEN_SATURATION").setPermission(
+ Flags.platformOxygenSaturationEnabled()
+ ? HealthPermissions.READ_OXYGEN_SATURATION : null)
+ .setDefaultMode(AppOpsManager.MODE_ALLOWED).build(),
};
// The number of longs needed to form a full bitmask of app ops