diff options
| author | 2024-02-22 09:25:38 +0000 | |
|---|---|---|
| committer | 2024-02-29 12:01:10 +0000 | |
| commit | dfc99e591404fec9a415f231bd4cacbb32a36a23 (patch) | |
| tree | 209e2bd7b7b5f7505cbae3f85ca0683c0dc76d7a | |
| parent | e2484b21c24c5cd2a0e84540d3e9d4f1516134a4 (diff) | |
Ignore setForegroundAllowance calls in case of MediaSession2
- For an app to fullfill FGS requirements, it needs to have a
user-engaged media session that is linked to a media style notification.
- Currently notifications can't be linked to a MediaSession2, so we
don't report the changes in user engagement in cases of MediaSession2.
Bug: 295518668
Test: Non functional change for non MediaSession2 cases.
Change-Id: Iae81139a20b39e9f59dfacc43512a00c7abd8f05
| -rw-r--r-- | services/core/java/com/android/server/media/MediaSession2Record.java | 25 | ||||
| -rw-r--r-- | services/core/java/com/android/server/media/MediaSessionService.java | 4 |
2 files changed, 5 insertions, 24 deletions
diff --git a/services/core/java/com/android/server/media/MediaSession2Record.java b/services/core/java/com/android/server/media/MediaSession2Record.java index 7af5c08f5ffa..1dc86f2b7f1e 100644 --- a/services/core/java/com/android/server/media/MediaSession2Record.java +++ b/services/core/java/com/android/server/media/MediaSession2Record.java @@ -56,7 +56,6 @@ public class MediaSession2Record extends MediaSessionRecordImpl { private boolean mIsClosed; private final int mPid; - private final ForegroundServiceDelegationOptions mForegroundServiceDelegationOptions; public MediaSession2Record( Session2Token sessionToken, @@ -76,25 +75,6 @@ public class MediaSession2Record extends MediaSessionRecordImpl { .build(); mPid = pid; mPolicies = policies; - mForegroundServiceDelegationOptions = - new ForegroundServiceDelegationOptions.Builder() - .setClientPid(mPid) - .setClientUid(getUid()) - .setClientPackageName(getPackageName()) - .setClientAppThread(null) - .setSticky(false) - .setClientInstanceName( - "MediaSessionFgsDelegate_" - + getUid() - + "_" - + mPid - + "_" - + getPackageName()) - .setForegroundServiceTypes(0) - .setDelegationService( - ForegroundServiceDelegationOptions - .DELEGATION_SERVICE_MEDIA_PLAYBACK) - .build(); } } @@ -119,7 +99,10 @@ public class MediaSession2Record extends MediaSessionRecordImpl { @Override public ForegroundServiceDelegationOptions getForegroundServiceDelegationOptions() { - return mForegroundServiceDelegationOptions; + // For an app to be eligible for FGS delegation, it needs a media session liked to a media + // notification. Currently, notifications cannot be linked to MediaSession2 so it is not + // supported. + return null; } @Override diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java index 8096c0627674..cde5606cf74d 100644 --- a/services/core/java/com/android/server/media/MediaSessionService.java +++ b/services/core/java/com/android/server/media/MediaSessionService.java @@ -610,9 +610,7 @@ public class MediaSessionService extends SystemService implements Monitor { } ForegroundServiceDelegationOptions foregroundServiceDelegationOptions = record.getForegroundServiceDelegationOptions(); - if (foregroundServiceDelegationOptions == null - || foregroundServiceDelegationOptions.mClientPid == Process.INVALID_PID) { - // This record doesn't support FGS delegation. In practice, this is MediaSession2. + if (foregroundServiceDelegationOptions == null) { return; } if (allowRunningInForeground) { |