В моем приложении я выдаю следующее утверждение:
toneGenerator.startTone(ToneGenerator.TONE_PROP_ACK, 600);
Это очень хорошо работает на дешевом LG LS670 под управлением Android 2.3.3, но вообще не звучит на всех других моих телефонах, начиная с Android 2.2.1 и заканчивая Android 2.3.4.
Итак, я знаю, что версия ОС здесь роли не играет (я также проверил в документации, что она поддерживается с API 1).
Кроме того, и громкость звонка, и громкость мультимедиа установлены на максимум, а тонГенератор инициализируется с помощью:
toneGenerator = new ToneGenerator(ToneGenerator.TONE_DTMF_1, 100);
И я проверил, что для Settings.System.DTMF_TONE_WHEN_DIALING
установлено значение 1.
Озадаченный этим непоследовательным поведением (на разных телефонах), я просмотрел системные журналы, когда это происходит, и единственное подозрительное различие, которое я смог найти, заключается в том, что телефоны, которые не работают, не издают звук
. У TONE_PROP_ACK
есть эта строка в их журнале:
AudioFlinger setParameters(): io 25, keyvalue routing=0, tid 155, calling tid 121
Какова цель AudioFlingerи как это может быть связано с отключением звука TONE_PROP_ACK
?
Любая идеякак исправить мой код, чтобы этот TONE_PROP_ACK звучал всегда, независимо от модели телефона?