diff options
| -rw-r--r-- | services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java | 17 | 
1 files changed, 12 insertions, 5 deletions
| diff --git a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java index 5ee9452c6a53..d8c35358102d 100644 --- a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java +++ b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java @@ -279,13 +279,20 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider {          if (!mRunning) {              return false;          } +        // We bind if any manager is scanning (regardless of whether an app is scanning) to give +        // the opportunity for providers to publish routing sessions that were established +        // directly between the app and the provider (typically via AndroidX MediaRouter). See +        // b/176774510#comment20 for more information.          boolean bindDueToManagerScan =                  mIsManagerScanning && !Flags.enablePreventionOfManagerScansWhenNoAppsScan(); -        if (!getSessionInfos().isEmpty() || bindDueToManagerScan) { -            // We bind if any manager is scanning (regardless of whether an app is scanning) to give -            // the opportunity for providers to publish routing sessions that were established -            // directly between the app and the provider (typically via AndroidX MediaRouter). See -            // b/176774510#comment20 for more information. +        // We also bind if this provider supports system media routing, because even if an app +        // doesn't have any registered discovery preference, we should still be able to route their +        // system media. +        boolean bindDueToSystemMediaRoutingSupport = +                mIsManagerScanning && mSupportsSystemMediaRouting; +        if (!getSessionInfos().isEmpty() +                || bindDueToManagerScan +                || bindDueToSystemMediaRoutingSupport) {              return true;          }          boolean anAppIsScanning = |