title: What is AudioFlinger and why does it fail TONE_PROP_ACK?
body: <p>In my application I issue the following statement:</p>
  
  <pre><code>toneGenerator.startTone(ToneGenerator.TONE_PROP_ACK, 600);
  </code></pre>
  
  <p>Which works very well on a cheap LG LS670 running Android 2.3.3 but doesn't sound at all on all other phones I have, ranging from Android 2.2.1 to Android 2.3.4.</p>
  
  <p>So I know the OS version doesn't play a role here (I also verified in the documentation that it has been supported since API 1).</p>
  
  <p>Also, both Ringer volume and Media volume are set to maximum and toneGenerator is initialized with:</p>
  
  <pre><code>toneGenerator = new ToneGenerator(ToneGenerator.TONE_DTMF_1, 100);
  </code></pre>
  
  <p>And I verified that <code>Settings.System.DTMF_TONE_WHEN_DIALING</code> is set to 1.</p>
  
  <p>Baffled by this inconsistent behavior (across different phones), I examined the system logs when this happens and the only suspicious difference I have been able to find is that the phones who <strong>fail</strong> to sound <code>TONE_PROP_ACK</code> have this line in their log:</p>
  
  <pre><code>AudioFlinger    setParameters(): io 25, keyvalue routing=0, tid 155, calling tid 121
  </code></pre>
  
  <p>What is the purpose of <a href="http://androidaudio.blogspot.com/2010/06/so-what-is-audioflinger.html" rel="nofollow noreferrer">AudioFlinger</a> and what could be its connection to muting <code>TONE_PROP_ACK</code>?</p>
  
  <p>Any <a href="https://stackoverflow.com/questions/2413426/playing-an-arbitrary-tone-with-android">idea</a> how to fix my code so that that TONE_PROP_ACK always sounds, regardless of phone model?</p>