4

他の誰かがサムスンギャラクシーSでこれを経験しましたか?

次の機能を使用してラウドスピーカーをオンにすると、正常に機能します。

audioManager.setSpeakerphoneOn(true);

しかし、私がそれをオフにするために反対を試みるとき:

audioManager.setSpeakerphoneOn(false);

ラウドスピーカーはオンのままで、オーディオはデバイスのイヤピースの代わりにラウドスピーカーを介して再生されます。

上記はNexusOneとHTCHeroで機能しますが、先日Samsung 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 に答える