所以我尝试使用Stack Overflow上的一些代码来将音频从Headset路由到扬声器。
我目前正在做的是:
AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
am.setMode(AudioManager.STREAM_MUSIC);
am.setSpeakerphoneOn(true);
sleep(15000);
音频在“睡眠”期间被路由,但是在15秒后它会回到耳机。 如果我在没有睡眠的情况下执行此操作,声音将很快进入扬声器并返回耳机。
在这个电话之后,我的程序就死了。我希望这会在系统中持续存在,就像app Headset Toggle那样
答案 0 :(得分:0)
我无法发现为什么我的方法不起作用,但我找到了解决方法。
我现在正在做的是:
Class audioSystemClass = Class.forName("android.media.AudioSystem");
Method setForceUse = audioSystemClass.getMethod("setForceUse", int.class, int.class);
// First 1 == FOR_MEDIA, second 1 == FORCE_SPEAKER. To go back to the default
// behavior, use FORCE_NONE (0).
setForceUse.invoke(null, 1, 1);
感谢来自this post的Michael。