0

我正在开发一个应用程序,该应用程序通过意图(条形码扫描仪)使用外部应用程序扫描条形码。收到扫描结果后,我使用此结果在数据库中查找文本,该文本可以是英语或法语,然后我通过另一个意图将其发送到另一个活动,该活动将通过 TTS 进行声音合成。我的应用程序应该支持法语和英语。我设法通过这种方式玩布尔值来做到这一点:

private String localelang = Locale.getDefault().getISO3Language();
private boolean is_fr = localelang.equalsIgnoreCase("fra");

如果当地人不是法国人,我的目标是强制我的应用程序强制 TTS 说英语口音(所以他们可以是日本人,或者我的 TTS 应该保持英语口音)。

我为设备选择了法语或英语以外的语言,问题就来了。因为在调用条形码扫描仪后,我的本地人似乎改变了一次以匹配设备,因为条形码扫描仪的这种外部意图,无论我尝试我的 TTS 还是设备的口音。

我知道这看起来很复杂,但我的代码太长而无法发送消息。这是我一直在尝试但徒劳的很多解决方案:

 public void onInit(int status) {       
        String synthesis = Aparler.toString();
    if (!is_fr){
        vocal.setLanguage(Locale.US);               
        vocal.speak( synthesis, TextToSpeech.QUEUE_FLUSH,null);
    }
    else if(is_fr){
        vocal.setLanguage(Locale.FRANCE);           
        vocal.speak( synthesis, TextToSpeech.QUEUE_FLUSH,null);
    }

当我省略条形码扫描仪时,一切正常,我确信通过 intnent 调用另一个应用程序的事实是对此负责的。我什至无法调试它,因为 AVD 不支持相机扫描......这真的很令人沮丧......感谢您帮助我并原谅我的英语不好。

4

1 回答 1

0

我发现有一个选项是文本到规范设置,它覆盖了我的语言选择,我禁用了它,一切都像魅力一样!

于 2012-06-10T02:13:18.790 回答