尽管设备上安装了有效的TTS引擎,但TTS引擎安装检查不会返回成功代码

时间:2017-03-09 18:04:04

标签: android text-to-speech google-text-to-speech

我使用以下代码来检测我的设备上是否安装了TTS引擎。

将页面启动到TTS引擎列表:

//Open Android Text-To-Speech Settings
            startActivityForResult(Build.VERSION.SDK_INT >= 14 ?
                            new Intent().setAction("com.android.settings.TTS_SETTINGS").setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) :
                            new Intent().addCategory(Intent.CATEGORY_LAUNCHER).setComponent(new ComponentName("com.android.settings", "com.android.settings.TextToSpeechSettings")).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
                    ,ConstantParams.VOICE_TTS_CHECK_CODE);

返回我应用的活动时:

 @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == ConstantParams.VOICE_TTS_CHECK_CODE)
    {
        Log.d("TTS","Result code : "+resultCode);
        if(resultCode != TextToSpeech.Engine.CHECK_VOICE_DATA_PASS){
            Log.d("TTSService","Valid TTS not installed");
            Intent install = new Intent();
           install.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
            startActivity(install);
        }
        else
        {               
            //Do something
        }
    }
}

但是,虽然我的设备安装了多个TTS引擎(我可以手动转到该设置页面,并更改TTS引擎并验证语音更改),但此代码始终返回值为0的resultCode(CHECK_VOICE_DATA_FAIL )。

请告知我如何通过此检查。以及如何从TTS设置页面返回到我的应用活动? (目前如果我禁止结果代码检查,我可以从我的应用程序转到TTS设置页面,但我无法检测返回阶段回到我的应用程序的活动)

0 个答案:

没有答案