Android TV SearchFragment 错误 SpeechRecognizer

Posted

技术标签:

【中文标题】Android TV SearchFragment 错误 SpeechRecognizer【英文标题】:Android TV SearchFragment Error SpeechRecognizer 【发布时间】:2018-07-12 14:30:02 【问题描述】:

实际上,我是 Leanback 的新手,我正在搜索部分工作并实现 SearchFragment。我在错误日志消息上遇到了这个问题(在设备上运行,但在 android 虚拟设备上工作):

Caused by: java.lang.IllegalArgumentException: Service not registered: android.speech.SpeechRecognizer$Connection@f545b3e

如果有人知道,请更新。谢谢。

【问题讨论】:

可能与缺少识别提供者有关吗? ***.com/q/37856993/1256219 @Tomero:我也和你一样的错误。你解决问题了吗? 我没有得到任何解决方案,我还在等待:'( 我也崩溃了:super.onPause(); => mSpeechRecognizer.destroy(); 你也看过这个:***.com/a/46701736/1759443 【参考方案1】:

它可能不再相关,但我自己做了类似的事情:

override fun onResume() 
        super.onResume()

        try 
            if (!Utils.isATV(requireContext())) 
                val mSpeechRecognizerField: Field = SearchSupportFragment::class.java.getDeclaredField("mSpeechRecognizer")
                mSpeechRecognizerField.isAccessible = true
                mSpeechRecognizerField.set(this, null)
            
         catch (e: Exception) 
            Log.e("", "Method not found")
        

    

条件和检查可由您自行决定。我在 Google 的 AndroidTV (leanback) 上有语音搜索功能,但在其他设备上它已关闭。

您可以检查系统中是否存在服务本身。

【讨论】:

以上是关于Android TV SearchFragment 错误 SpeechRecognizer的主要内容,如果未能解决你的问题,请参考以下文章

尝试提交查询时 Android TV SearchFragment 崩溃(NPE)

Android TV-电视开发知识点速览

Android TV开发焦点移动源码分析

Android TV开发总结TV上屏幕适配总结

Android TV 应用无法安装在 Android TV 设备上

Smart TV、Android TV 和 Fire TV 的一种语言