Update generation when there is device connection state changed.
When there is device connection state changed, the available
input/output devices will change. If we don't update the generation, it
may cause the number of ports different with same generation, which may
cause crash in jni layer.
Bug: 73077399
Test: run com.android.bluetooth.hfp.HeadsetServiceTest
Change-Id: Ic2e477552a71582bcd38227b9a449eef5b82b18c
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index 54bfcbc..e81e47e 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -67,7 +67,9 @@
const char *device_address,
const char *device_name)
{
- return setDeviceConnectionStateInt(device, state, device_address, device_name);
+ status_t status = setDeviceConnectionStateInt(device, state, device_address, device_name);
+ nextAudioPortGeneration();
+ return status;
}
void AudioPolicyManager::broadcastDeviceConnectionState(audio_devices_t device,