Take the 2-minute tour × Intent intent = new Intent();
startActivityForResult(intent, 0);  if(requestCode == 0){
if(resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS){
Toast.makeText(getApplicationContext(),"Already Installed",
Toast.LENGTH_LONG).show(); } else { Intent installIntent = new
Intent(); Toast.makeText(getApplicationContext(),"Installed
Now", Toast.LENGTH_LONG).show();  Guys, Above code works only if
OS Default language == TTS installed language. If they are
different, it branches to ACTION_INSTALL_TTS_DATA. Obviously, it
should be additional data for
TextToSpeech.Engine.ACTION_CHECK_TTS_DATA to specify which
language data need to be checked but I cannot find it.
Following scenario come to play when user run something like a
French – German dictionary on with English as default OS
language.  Scenario: SVOX + German, French languages are
installed. Default language set to English or something other
language. The key it’s not German or French It looks like
TextToSpeech.Engine.ACTION_CHECK_TTS