私のアプリケーションでは、次のステートメントを発行します。
toneGenerator.startTone(ToneGenerator.TONE_PROP_ACK, 600);
これは、Android 2.3.3 を実行している安価な LG LS670 では非常にうまく機能しますが、Android 2.2.1 から Android 2.3.4 まで、私が持っている他のすべての電話ではまったく聞こえません。
したがって、ここでは OS のバージョンは関係ないことはわかっています (ドキュメントで、API 1 以降でサポートされていることも確認しました)。
また、着信音の音量とメディアの音量の両方が最大に設定され、toneGenerator は次のように初期化されます。
toneGenerator = new ToneGenerator(ToneGenerator.TONE_DTMF_1, 100);
そして、それが1に設定されていることを確認しSettings.System.DTMF_TONE_WHEN_DIALING
ました。
この一貫性のない動作 (さまざまな電話間で) に困惑し、これが発生したときにシステム ログを調べたところ、唯一の疑わしい違いは、音が出ない電話TONE_PROP_ACK
のログに次の行があることだけでした。
AudioFlinger setParameters(): io 25, keyvalue routing=0, tid 155, calling tid 121
AudioFlingerの目的は何ですか?また、ミュートとの関係は何TONE_PROP_ACK
ですか?
電話のモデルに関係なく、 TONE_PROP_ACKが常に鳴るようにコードを修正する方法はありますか?