如何以编程方式了解我的设备中是否安装了任何TTS引擎?

pik*_*iks 6 android

我想以编程方式了解如何获取设备的TTS引擎信息,例如是否安装了任何TTS引擎,如果安装了那么这些以及每个TTS引擎支持的不同语言是什么?我必须使用Android 2.1版(api level 7)来实现这一目标.

请帮我实现此功能.

问候,

皮克斯

Moh*_*qui 12

您可以通过首先发送结果意图来检查它

Intent intent = new Intent();
intent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(intent, 0);
Run Code Online (Sandbox Code Playgroud)

然后你可以检查一下,如果你在onActivityResult方法中安装了TTS引擎:

@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();
}
Run Code Online (Sandbox Code Playgroud)

希望它有效:)


Yas*_*obi 6

这为您提供了 Android 上安装的 TTS 引擎列表。

tts = new TextToSpeech(this, this);
for (TextToSpeech.EngineInfo engines : tts.getEngines()) {
Log.d("Engine Info " , engines.toString());
}
Run Code Online (Sandbox Code Playgroud)


XGo*_*het 2

这篇官方Android 博客文章为您提供了检测 TTS 引擎是否已安装并可供使用的最佳实践,以及 TTS 的其他实践。