diff --git a/api/current.txt b/api/current.txt
index 5b68eb579a793..661772a428485 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -11945,6 +11945,7 @@ package android.content.pm {
field public static final int FOREGROUND_SERVICE_TYPE_LOCATION = 8; // 0x8
field public static final int FOREGROUND_SERVICE_TYPE_MANIFEST = -1; // 0xffffffff
field public static final int FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK = 2; // 0x2
+ field public static final int FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION = 32; // 0x20
field public static final int FOREGROUND_SERVICE_TYPE_NONE = 0; // 0x0
field public static final int FOREGROUND_SERVICE_TYPE_PHONE_CALL = 4; // 0x4
field public int flags;
diff --git a/core/java/android/content/pm/ServiceInfo.java b/core/java/android/content/pm/ServiceInfo.java
index cd40c95b57370..00507e1548a6b 100644
--- a/core/java/android/content/pm/ServiceInfo.java
+++ b/core/java/android/content/pm/ServiceInfo.java
@@ -139,6 +139,13 @@ public class ServiceInfo extends ComponentInfo
*/
public static final int FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE = 1 << 4;
+ /**
+ * Constant corresponding to {@code mediaProjection} in
+ * the {@link android.R.attr#foregroundServiceType} attribute.
+ * Managing a media projection session, e.g for screen recording or taking screenshots.
+ */
+ public static final int FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION = 1 << 5;
+
/**
* A special value indicates to use all types set in manifest file.
*/
@@ -158,6 +165,7 @@ public class ServiceInfo extends ComponentInfo
FOREGROUND_SERVICE_TYPE_PHONE_CALL,
FOREGROUND_SERVICE_TYPE_LOCATION,
FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE,
+ FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION,
})
@Retention(RetentionPolicy.SOURCE)
public @interface ForegroundServiceType {}
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index fc7b4cf05b569..44f44d4480d66 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -1473,6 +1473,9 @@
+
+