我的应用程序将检测用户是否安装了TTS引擎,如果没有,我将禁用所有功能并给他们一个按钮,他们可以点击“安装TTS”(最好给他们选择而不是去自动关闭?)
按钮执行此操作:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.languageselection);
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
}
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);
speakEnglishButton.setEnabled(true);
speakFrenchButton.setEnabled(true);
speakSpanishButton.setEnabled(true);
speakGermanButton.setEnabled(true);
speakItalianButton.setEnabled(true);
} else {
speakEnglishButton.setEnabled(false);
speakFrenchButton.setEnabled(false);
speakSpanishButton.setEnabled(false);
speakGermanButton.setEnabled(false);
speakItalianButton.setEnabled(false);
Toast.makeText(this, "No TTS installed....", Toast.LENGTH_LONG);
setContentView(R.layout.nottsengine);
}
}
}
问题:致电startActivity(installIntent);
之后,我如何将它们挂回到我的活动中?如果他们已经安装了TTS引擎,那么我想启用该功能。如果他们确实进入了该活动,但没有安装TTS,我需要禁用功能。
答案 0 :(得分:0)
注册BroadcastReciver以在安装TTS包时收到通知。将此添加到您的清单:
<receiver android:name=".InstallNotifier">
<intent-filter>
<action android:name="android.speech.tts.engine.TTS_DATA_INSTALLED" />
</intent-filter>
</receiver>