diff --git a/services/audio_policy/server/domain/device/src/audio_recovery_device.cpp b/services/audio_policy/server/domain/device/src/audio_recovery_device.cpp index 4d697ebc5478fc346dffa2df01a48c84007ee6d2..5ca397a9f93977fdb29c6fda4bd095214de11ee1 100644 --- a/services/audio_policy/server/domain/device/src/audio_recovery_device.cpp +++ b/services/audio_policy/server/domain/device/src/audio_recovery_device.cpp @@ -176,6 +176,8 @@ void AudioRecoveryDevice::SetDeviceEnableAndUsage(const std::shared_ptrdeviceUsage_ = ALL_USAGE; audioDeviceManager_.UpdateDevicesListInfo(deviceDesc, USAGE_UPDATE); + deviceDesc->exceptionFlag_ = false; + audioDeviceManager_.UpdateDevicesListInfo(deviceDesc, EXCEPTION_FLAG_UPDATE); } int32_t AudioRecoveryDevice::SelectOutputDevice(sptr audioRendererFilter, diff --git a/services/audio_policy/test/unittest/audio_core_service_unit_test/src/audio_core_service_unit_test.cpp b/services/audio_policy/test/unittest/audio_core_service_unit_test/src/audio_core_service_unit_test.cpp index deda23277616c77c644335b2530e947a284568fd..beb195ac0c11f381ea52f655fdaf0e76bc658199 100644 --- a/services/audio_policy/test/unittest/audio_core_service_unit_test/src/audio_core_service_unit_test.cpp +++ b/services/audio_policy/test/unittest/audio_core_service_unit_test/src/audio_core_service_unit_test.cpp @@ -455,6 +455,36 @@ HWTEST_F(AudioCoreServiceUnitTest, SelectOutputDevice_001, TestSize.Level1) EXPECT_EQ(SUCCESS, result); } +/** +* @tc.name : Test AudioCoreService. +* @tc.number: SelectOutputDevice_002 +* @tc.desc : Test SelectOutputDevice - will return success. +*/ +HWTEST_F(AudioCoreServiceUnitTest, SelectOutputDevice_002, TestSize.Level1) +{ + AUDIO_INFO_LOG("AudioCoreServiceUnitTest SelectOutputDevice_001 start"); + ASSERT_NE(nullptr, GetServerPtr()); + sptr audioRendererFilter = new(std::nothrow) AudioRendererFilter(); + ASSERT_NE(nullptr, audioRendererFilter) << "audioRendererFilter is nullptr."; + audioRendererFilter->uid = getuid(); + audioRendererFilter->rendererInfo.rendererFlags = STREAM_FLAG_FAST; + audioRendererFilter->rendererInfo.streamUsage = STREAM_USAGE_MUSIC; + + auto &devMan = AudioDeviceManager::GetAudioDeviceManager(); + shared_ptr devDesc; + for (auto &item : devMan.connectedDevices_) { + if (item->deviceRole_ == OUTPUT_DEVICE) { + devDesc = item; + break; + } + } + CHECK_AND_RETURN(devDesc); + auto selectedDev = make_shared(devDesc); + devDesc->exceptionFlag_ = true; + GetServerPtr()->eventEntry_->SelectOutputDevice(audioRendererFilter, {selectedDev}); + EXPECT_EQ(devDesc->exceptionFlag_, false); +} + /** * @tc.name : Test AudioCoreService. * @tc.number: SelectInputDevice_001 @@ -1219,7 +1249,7 @@ HWTEST_F(AudioCoreServiceUnitTest, CaptureConcurrentCheck_001, TestSize.Level1) streamDescs[i]->streamInfo_.encoding = AudioEncodingType::ENCODING_PCM; streamDescs[i]->streamInfo_.channelLayout = AudioChannelLayout::CH_LAYOUT_STEREO; streamDescs[i]->rendererInfo_.streamUsage = STREAM_USAGE_MOVIE; - + streamDescs[i]->audioMode_ = AUDIO_MODE_RECORD; streamDescs[i]->createTimeStamp_ = ClockTime::GetCurNano(); streamDescs[i]->startTimeStamp_ = streamDescs[i]->createTimeStamp_ + 1;