如何在插入有线耳机时切换到BT耳机

时间:2014-05-29 10:53:22

标签: android bluetooth headset

问题是有线耳机似乎优先于BT耳机。因此,此代码段无法解决问题

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

audioManager.setMode(AudioManager.MODE_IN_CALL); // also tried with AudioManager.MODE_IN_CALL
audioManager.setBluetoothScoOn(true);
audioManager.startBluetoothSco();

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

1 个答案:

答案 0 :(得分:0)

虽然它是hackish,但直接反映在AudioSystem上可能会让您访问此功能。我还没有实现这个,但我知道有商业应用程序提供这种能力(参见市场上的“SoundAbout”应用程序)。

        Class reflectedAS = null;
        reflectedAS = Class.forName("android.media.AudioSystem");

然后,有一个名为“setDeviceConnectionState”的函数,看起来它会起作用。如果我开始工作,我会更新答案,但是想为你提供一个起点(对于其他人来说也是如此)。

AudioSystem的源代码:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/android/media/AudioSystem.java#AudioSystem

不要指望这适用于所有Android版本,或在未来版本中支持

那就是说,不确定另一种方法。