Проблема с выключенным динамиком на Galaxy S

Кто-нибудь еще испытывал это на Samsung Galaxy S?

Когда я использую следующие функции, чтобы включить громкоговоритель, он работает нормально:

audioManager.setSpeakerphoneOn(true);

Но когда я пытаюсь наоборот отключить его:

audioManager.setSpeakerphoneOn(false);

Громкоговоритель остается включенным, и звук воспроизводится через него вместо наушника на устройстве.

Вышеуказанное работает на Nexus One и HTC Hero, только что получил Samsung Galaxy на днях, и он не работает, кто-нибудь еще сталкивался с проблемой и, возможно, знает, почему это происходит и есть ли обходной путь?

1 ответ

Решение

Вот что я должен сделать, чтобы заставить его работать:

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) 
}
Другие вопросы по тегам