代码之家  ›  专栏  ›  技术社区  ›  Donal Rafferty

Galaxy S上的扬声器关闭故障

  •  4
  • Donal Rafferty  · 技术社区  · 14 年前

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

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

    audioManager.setSpeakerphoneOn(true);
    

    但当我试着把它关掉时:

    audioManager.setSpeakerphoneOn(false);
    

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

    以上是NexusOne和HTC Hero的作品,前几天刚买了一个三星Galaxy,它不工作了,有没有其他人遇到过这个问题,也许知道为什么会发生,有没有解决的办法?

    1 回复  |  直到 14 年前
        1
  •  4
  •   dhaag23    14 年前

    我要做的就是让它工作:

    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) 
    }
    
    推荐文章