我想通過編程知道如何獲取設備的TTS引擎信息,例如:是否安裝了任何TTS引擎,如果安裝了TTS引擎,那麼這些TTS引擎是什麼以及不同的語言是什麼? 我必須使用Android版本2.1(API級別7)來實現這一點。如何以編程方式瞭解我的設備中是否安裝了任何TTS引擎?
請幫我實施此功能。
問候,
皮克斯
我想通過編程知道如何獲取設備的TTS引擎信息,例如:是否安裝了任何TTS引擎,如果安裝了TTS引擎,那麼這些TTS引擎是什麼以及不同的語言是什麼? 我必須使用Android版本2.1(API級別7)來實現這一點。如何以編程方式瞭解我的設備中是否安裝了任何TTS引擎?
請幫我實施此功能。
問候,
皮克斯
這位官員Android Blog Post給你最好的做法,如果安裝了TTS引擎,並準備使用,以及對TTS等手法來檢測。
要保存點擊:
啓動這個或檢查是否安裝了TTS沒有:
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
然後拿到導致此:
private TextToSpeech mTts;
protected void onActivityResult(
int requestCode, int resultCode, Intent data) {
if (requestCode == MY_DATA_CHECK_CODE) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
// success, create the TTS instance
mTts = new TextToSpeech(this, this);
} else {
// missing data, install it
Intent installIntent = new Intent();
installIntent.setAction(
TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}
}
您可以通過檢查首先發送意圖結果
Intent intent = new Intent();
intent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(intent, 0);
然後,你可以檢查它,如果你已經安裝了TTS引擎或不onActivityResult方法:
@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();
}
希望工程:)
這給你安裝在你的Android TTS引擎列表。
tts = new TextToSpeech(this, this);
for (TextToSpeech.EngineInfo engines : tts.getEngines()) {
Log.d("Engine Info " , engines.toString());
}
但是這個代碼是如何幫助我知道,無論是通過TTS引擎與否和第2的東西支持的特定語言:如何設置默認引擎到其他TTS引擎? – piks