Intent intent = new Intent();
intent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(intent, 0);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
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();
installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
Toast.makeText(getApplicationContext(),"Installed Now", Toast.LENGTH_LONG).show();
}
}
}
夥計, 以上代碼僅適用於操作系統默認語言== TTS安裝語言。 如果它們不同,它將分支到ACTION_INSTALL_TTS_DATA。 顯然,它應該是TextToSpeech.Engine.ACTION_CHECK_TTS_DATA的附加數據,用於指定需要檢查哪些語言數據,但我無法找到它。對於非默認語言,2.1中使用TextToSpeech.Engine.ACTION_CHECK_TTS_DATA的正確方法是什麼?
當用戶使用英語作爲默認操作系統語言運行類似法語 - 德語字典的東西時,會出現以下情景。
場景: 安裝SVOX +德語,法語。 默認語言設置爲英語或其他語言。 這不是德國的關鍵或法語 它看起來像TextToSpeech.Engine.ACTION_CHECK_TTS_DATA您在SVOX英語語言的存在,並與CHECK_VOICE_DATA_FAIL回來。 如果語言設置爲德語的結果將是CHECK_VOICE_DATA_PASS
有類似的問題,但它看起來像人們試圖回答不完全理解的問題。 how to get to know programmatically whether any TTS engine installed in my device or not?