2015-09-28 140 views
1

所以我想使用Stack Overflow中的一些代码来将音频从耳机路由到扬声器。Android AudioManager.setSpeakerphoneOn在睡眠后停止工作

什么我目前做的是:

AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); 
am.setMode(AudioManager.STREAM_MUSIC); 
am.setSpeakerphoneOn(true); 
sleep(15000); 

什么情况是,“睡眠”期间,音频路由,但它在15秒后回来的耳机。 如果我在没有睡眠的情况下执行此操作,声音将很快传到扬声器并返回耳机。

在这个调用之后,我的程序就不存在了。我希望这将持续在系统中,因为应用Headset Toggle确实

+0

尝试使用'AudioManager.MODE_IN_CALL',但得到了相同的结果。 – GuiFGDeo

回答

0

我不明白为什么我的方法不起作用,但我找到了解决方法。

什么我目前做的是:从this post

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); 

感谢迈克尔。