4

有没有其他人在三星 Galaxy S 上经历过这种情况?

当我使用以下方法打开扬声器时,它工作正常:

audioManager.setSpeakerphoneOn(true);

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

audioManager.setSpeakerphoneOn(false);

扬声器保持打开状态,并通过它而不是设备上的听筒播放音频。

以上适用于 Nexus One 和 HTC Hero,前几天刚买了三星 Galaxy,但它不起作用,有没有其他人遇到过这个问题,也许知道它为什么会发生以及是否有解决方法?

4

1 回答 1

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) 
}
于 2011-01-14T19:35:39.737 回答