Add defer-until-active policy to certain broadcasts.
Applying this poicy allows deferring the broadcast delivery to apps
in the Cached state.
Bug: 255532206
Bug: 256596007
Test: atest ./tests/tests/media/audio/src/android/media/audio/cts/AudioManagerTest.java
Change-Id: Id405b6685f2c3f62934d21b121caca977218e8c0
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 58ddd9c..2823f5a 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -7757,6 +7757,7 @@
volumeChangedOptions.setDeliveryGroupPolicy(DELIVERY_GROUP_POLICY_MOST_RECENT);
volumeChangedOptions.setDeliveryGroupMatchingKey(
AudioManager.VOLUME_CHANGED_ACTION, String.valueOf(mStreamType));
+ volumeChangedOptions.setDeferUntilActive(true);
mVolumeChangedOptions = volumeChangedOptions.toBundle();
mStreamDevicesChanged = new Intent(AudioManager.STREAM_DEVICES_CHANGED_ACTION);
@@ -7765,6 +7766,7 @@
streamDevicesChangedOptions.setDeliveryGroupPolicy(DELIVERY_GROUP_POLICY_MOST_RECENT);
streamDevicesChangedOptions.setDeliveryGroupMatchingKey(
AudioManager.STREAM_DEVICES_CHANGED_ACTION, String.valueOf(mStreamType));
+ streamDevicesChangedOptions.setDeferUntilActive(true);
mStreamDevicesChangedOptions = streamDevicesChangedOptions.toBundle();
}