在Android中,如何在有线耳机和A2DP BT之间切换?

时间:2011-06-07 02:13:37

标签: android bluetooth headset

在我的应用中,我允许用户在内置手机扬声器,免提电话和立体声BT(A2DP)耳机之间切换音频输出。如果插入有线耳机,则无法选择内置扬声器或A2DP。无论哪种方式,声音都通过有线耳机播放。有没有办法强迫它通过BT耳机播放?

使用API​​ 5及更高版本,不推荐使用隐式设置音频路径的所有方法,因此我无法找到实现此目的的方法。任何帮助将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:-1)

如果插入有线耳机+ BT耳机,则可以切换到内置扬声器(如果您的意思是Android设备扬声器)或有线耳机

    AudioManager audioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
    audioManager.setMode(AudioManager.MODE_IN_CALL);

    // true - switch to internal speakers; false - to wired headsets
    audioManager.setSpeakerphoneOn(true);


    mMediaPlayer = MediaPlayer.create(AudioTests.this, R.raw.test_cbr);
    mMediaPlayer.start();

但在这种情况下,切换到BT耳机会出现问题。此代码无法切换到

    // instead of audioManager.setSpeakerphoneOn(true);
    audioManager.setMode(0);
    audioManager.setBluetoothScoOn(true);
    audioManager.startBluetoothSco();