android - 如何抑制 TTS.getAvailableLocales() 的警告消息

标签 android text-to-speech logcat

我可以获得当前设备支持的区域设置列表,如下所示:

for (Locale each : Locale.getAvailableLocales())
    if(1 <= myTTS.isLanguageAvailable(each))
        supportedLocales.add(each);

但我的问题是,方法 isLanguageAvailable() 总是记录不支持的语言环境的警告消息,如下所示:

08-15 20:10:08.163  5056    5672    W   TTS Local voice not installed, we will not be able to do local fallback
08-15 20:10:08.527  5056    5067    W   TTS No local or network voice found, failing dispatch
08-15 20:10:08.527  5056    5067    W   TTS Could not find voice for lkt_US
08-15 20:10:08.606  24353   24382   W   TextToSpeech    Couldn't retrieve ISO 3166 country code for locale: es_EA
08-15 20:10:08.606  24353   24382   W   TextToSpeech    java.util.MissingResourceException: Couldn't find 3-letter country code for EA
08-15 20:10:08.606  24353   24382   W   TextToSpeech        at java.util.Locale.getISO3Country(Locale.java:1720)
08-15 20:10:08.606  24353   24382   W   TextToSpeech        at android.speech.tts.TextToSpeech$16.run(TextToSpeech.java:1789)
08-15 20:10:08.606  24353   24382   W   TextToSpeech        at android.speech.tts.TextToSpeech$16.run(TextToSpeech.java:1777)
08-15 20:10:08.606  24353   24382   W   TextToSpeech        at android.speech.tts.TextToSpeech$Connection.runAction(TextToSpeech.java:2301)
08-15 20:10:08.606  24353   24382   W   TextToSpeech        at android.speech.tts.TextToSpeech.runAction(TextToSpeech.java:752)
08-15 20:10:08.606  24353   24382   W   TextToSpeech        at android.speech.tts.TextToSpeech.runAction(TextToSpeech.java:742)
08-15 20:10:08.606  24353   24382   W   TextToSpeech        at android.speech.tts.TextToSpeech.isLanguageAvailable(TextToSpeech.java:1776)
08-15 20:10:08.606  24353   24382   W   TextToSpeech        at com.jyplugin.ttsforandroid.TTSEngine.getAvailableLanguageNames(TTSEngine.java:155)
08-15 20:10:08.606  24353   24382   W   TextToSpeech        at com.jyplugin.ttsforandroid.TTSEngine.getAvailableDisplayNames(TTSEngine.java:190)
08-15 20:10:08.606  24353   24382   W   TextToSpeech        at com.jyplugin.ttsforandroid.MainActivity$1.run(MainActivity.java:45)
08-15 20:10:08.606  24353   24382   W   TextToSpeech        at java.lang.Thread.run(Thread.java:764)

每当我启动 TTS 应用程序时,我都会收到一堆这样的信息,但我真的不想要这些。

如何在我的发布版本中抑制这些不需要的警告消息?

最佳答案

一种解决方法是将 logcat 过滤器设置为除 TextToSpeech 之外的所有内容(您需要启用正则表达式):^((?! TextToSpeech).)*$

我认为您无法对来自核心 api 的日志执行任何操作。当您从某些手机进行调试并始终获取蓝牙或连接日志时,也会出现同样的问题。

关于android - 如何抑制 TTS.getAvailableLocales() 的警告消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51857933/

相关文章:

java - 通过低功耗蓝牙(即通过信标)向附近的移动设备发送通知,且设备上未安装任何应用程序

c# - System.speech 在数字上说 "area code"

java - 如何使用 ddmlib 获取 logcat 数据?

android - 如何使用 Android 数据绑定(bind)库制作粗体文本

android - 如何在收到广播后在android上弹出并要求用户输入

android - 如何在android中一一使用具有多个值的文本语音

android - GRPC 错误日志(Android Studio)

android - IOIO-OTG错误,无法编译。包括Logcat

android - 为什么我的应用会抛出 `android.permission.REBOOT SecurityException` ?

ios - 如何在中间停止 AVSpeechSynthesizer 播放?