Проблема с выключенным динамиком на 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)
}