在Galaxy S上关闭扬声器的麻烦

时间:2010-11-25 15:10:49

标签: android audio android-sdk-2.1 speakerphone

有没有其他人在三星Galaxy S上体验过这个?

当我使用以下内容打开扬声器时,它可以正常工作:

audioManager.setSpeakerphoneOn(true);

但是,当我尝试相反的方式将其关闭时:

audioManager.setSpeakerphoneOn(false);

扬声器保持开启状态,通过设备播放音频,而不是设备上的耳机。

以上是Nexus One和HTC Hero的作品,前几天刚刚获得了三星Galaxy并且它不起作用,是否有其他人遇到过这个问题,也许知道它为什么会发生,如果有解决方法?

1 个答案:

答案 0 :(得分:4)

以下是我要做的工作:

if (isGalaxyS()) {
    audioManager.setMode(AudioManager.MODE_IN_CALL);
    audioManager.setMode(AudioManager.MODE_NORMAL);
    audioManager.setSpeakerphoneOn(flag);
}

似乎这种来回以某种方式重置了音频通道。为了完整性,这里是isGalaxyS()(注意我只在Epic上测试过这个!):

public static boolean isGalaxyS() {
    String model = Build.MODEL;
    return  model.equalsIgnoreCase("GT-I9000") ||       // base model
            model.equalsIgnoreCase("SPH-D700") ||       // Epic         (Sprint)
            model.equalsIgnoreCase("SGH-I897") ||       // Captivate    (AT&T)
            model.equalsIgnoreCase("SGH-T959") ||       // Vibrant      (T-Mobile)
            model.equalsIgnoreCase("SCH-I500") ||       // Fascinate    (Verizon)
            model.equalsIgnoreCase("SCH-I400");         // Continuum    (T-Mobile) 
}