diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java index f5ec880ed2356..11e27049d2b62 100644 --- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java @@ -2443,10 +2443,9 @@ class MediaRouter2ServiceImpl { List routerRecords = getRouterRecords(); List managerRecords = getManagerRecords(); - boolean shouldBindProviders = false; - + boolean isManagerScanning = false; if (service.mPowerManager.isInteractive()) { - boolean isManagerScanning = managerRecords.stream().anyMatch(manager -> + isManagerScanning = managerRecords.stream().anyMatch(manager -> manager.mIsScanning && service.mActivityManager .getPackageImportance(manager.mPackageName) <= PACKAGE_IMPORTANCE_FOR_DISCOVERY); @@ -2455,7 +2454,6 @@ class MediaRouter2ServiceImpl { discoveryPreferences = routerRecords.stream() .map(record -> record.mDiscoveryPreference) .collect(Collectors.toList()); - shouldBindProviders = true; } else { discoveryPreferences = routerRecords.stream().filter(record -> service.mActivityManager.getPackageImportance(record.mPackageName) @@ -2468,7 +2466,7 @@ class MediaRouter2ServiceImpl { for (MediaRoute2Provider provider : mRouteProviders) { if (provider instanceof MediaRoute2ProviderServiceProxy) { ((MediaRoute2ProviderServiceProxy) provider) - .setManagerScanning(shouldBindProviders); + .setManagerScanning(isManagerScanning); } } @@ -2484,7 +2482,7 @@ class MediaRouter2ServiceImpl { activeScan |= preference.shouldPerformActiveScan(); } RouteDiscoveryPreference newPreference = new RouteDiscoveryPreference.Builder( - List.copyOf(preferredFeatures), activeScan).build(); + List.copyOf(preferredFeatures), activeScan || isManagerScanning).build(); synchronized (service.mLock) { if (newPreference.equals(mUserRecord.mCompositeDiscoveryPreference)) {