发送完成后,如何将用户挂回到我的活动中?

时间:2011-02-25 23:06:36

标签: android android-activity android-2.2-froyo

我的应用程序将检测用户是否安装了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,我需要禁用功能。

1 个答案:

答案 0 :(得分:0)

注册BroadcastReciver以在安装TTS包时收到通知。将此添加到您的清单:

<receiver android:name=".InstallNotifier">
    <intent-filter>
    <action android:name="android.speech.tts.engine.TTS_DATA_INSTALLED" />
    </intent-filter>
</receiver>