【问题标题】:Android Local changing when using TTS to speak a String from BARCODE scanner via intent使用 TTS 通过 Intent 从条码扫描仪说出字符串时,Android 本地发生变化
【发布时间】:2012-06-05 00:51:39
【问题描述】:

我正在开发一个应用程序,它使用外部应用程序通过意图(条形码扫描仪)扫描条形码。收到扫描结果后,我使用此结果在数据库中查找文本,该文本可以是英语或法语,然后我通过另一个意图将其发送到另一个活动,该活动将通过 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 不支持相机扫描... 真是令人沮丧…… 感谢您帮助我并原谅我糟糕的英语。

【问题讨论】:

  • "我什至无法调试它,因为 AVD 不支持相机扫描..." 在您的设备上转到:设置->应用程序->开发并检查 USB 调试 选项。您现在可以在您的设备上进行调试,而不仅仅是 AVD。
  • 谢谢,我昨天开始用我的设备进行调试,我发现有一个选项是文本到规范设置,它覆盖了我的语言选择,我禁用了它,一切都像魅力一样!跨度>
  • Excellent :) 您应该自己添加作为答案,然后接受它。将来可能对其他人有用。

标签: android android-intent locale barcode text-to-speech


【解决方案1】:

我发现有一个选项是 text to spech 设置,它覆盖了我的语言选择,我禁用了它,一切都像魅力一样!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多