Как перезагрузить аудиосистему?

Я использую логику из Android: переключение звука между Bluetooth и Громкоговоритель телефона несовместимы для переключения между динамиком, динамиком и Bluetooth. Вот код:

//For BT
mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
mAudioManager.startBluetoothSco();
mAudioManager.setBluetoothScoOn(true);

//For phone ear piece
mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
mAudioManager.stopBluetoothSco();
mAudioManager.setBluetoothScoOn(false);
mAudioManager.setSpeakerphoneOn(false);

//For phone speaker(loadspeaker)
mAudioManager.setMode(AudioManager.MODE_NORMAL);
mAudioManager.stopBluetoothSco();
mAudioManager.setBluetoothScoOn(false);
mAudioManager.setSpeakerphoneOn(true);

Эта логика работает должным образом, пока никакое другое приложение не использует звук (медиаплеер, телефон и т. д.). Если я запускаю свое приложение после запуска другого приложения, логика выходит из строя. Звук по-прежнему работает, за исключением того, что выходной сигнал не соответствует ожидаемому. Например, вместо громкой связи выход может идти на разговорный динамик.

Обратите внимание, что я запускаю свое приложение после выхода из другого приложения. Перекрытия нет.

Похоже, что настройки аудио-менеджера не относятся к конкретному приложению и могут испортить работу других приложений. Мне интересно, есть ли способ сбросить аудиоменеджер перед установкой моего режима. С уважением.


person Peter    schedule 09.03.2018    source источник
comment
ты решил это?   -  person Georgiy Chebotarev    schedule 19.08.2019
comment
есть какое-нибудь решение?   -  person Febin Mathew    schedule 30.01.2020