diff options
| author | 2024-10-29 08:12:34 +0000 | |
|---|---|---|
| committer | 2024-11-06 21:00:14 +0000 | |
| commit | 0f8fc709a33327f98f0a31af5de309cdbef877ae (patch) | |
| tree | 35b150891d40da914d6d0aedc013f8ce6e57ec9a | |
| parent | f06190e7ce43891f16c5e9109dcd265288493b10 (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.txt | 1 | ||||
| -rw-r--r-- | core/java/android/app/AppOpsManager.java | 17 |
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 |