我使用Android : Switching audio between Bluetooth and Phone Speaker is inconsistent的逻辑来切换耳机,扬声器和蓝牙之间的输出。这是代码:
//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);
只要没有其他应用程序使用音频(媒体播放器,电话等),此逻辑就可以正常工作。如果我在运行其他应用程序后运行我的应用程序,则逻辑会变得混乱。音频仍然有效,但目标输出不是预期的。例如,输出可以转到耳机而不是免提电话。
请注意,我从其他应用程序退出后运行我的应用程序。没有重叠。
看起来音频管理器设置并非特定于应用程序,可能会弄乱其他应用程序。我想知道在设置模式之前是否有办法重置音频管理器。问候。