【问题标题】:How to make app content searchable for android TV如何使 Android TV 的应用内容可搜索
【发布时间】:2015-03-25 18:18:26
【问题描述】:

所以我按照 android tv 文档从这里下载了示例应用程序:

https://github.com/googlesamples/androidtv-Leanback

我让它在实际的 nexus 设备上运行,并且大多数应用程序都运行良好。虽然我最感兴趣的部分不适合我。

当我尝试在主屏幕中使用 google 搜索来搜索某些内容时,我根本没有从 Leanback 示例应用程序中获得任何搜索结果,并且我在来自示例应用程序的 logcat 中看到以下错误。

1822-1838/com.example.android.leanback E/JavaBinder﹕ *** Uncaught remote exception!  (Exceptions are not yet supported across processes.)
android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
        at android.database.AbstractCursor.checkPosition(AbstractCursor.java:426)
        at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
        at android.database.AbstractWindowedCursor.getType(AbstractWindowedCursor.java:130)
        at com.example.android.leanback.PaginatedCursor.<init>(PaginatedCursor.java:65)
        at com.example.android.leanback.VideoDatabase.query(VideoDatabase.java:170)
        at com.example.android.leanback.VideoDatabase.getWordMatch(VideoDatabase.java:150)
        at com.example.android.leanback.VideoContentProvider.getSuggestions(VideoContentProvider.java:112)
        at com.example.android.leanback.VideoContentProvider.query(VideoContentProvider.java:85)
        at android.content.ContentProvider.query(ContentProvider.java:950)
        at android.content.ContentProvider$Transport.query(ContentProvider.java:210)
        at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
        at android.os.Binder.execTransact(Binder.java:446)

我在自己的应用程序中遵循了这个示例,但我得到了类似的错误以及其他错误,因为我确定我没有以正确的方式连接所有内容。如果有人可以搜索应用内容,我将不胜感激有关使其正常工作的一些意见。

编辑:

在进行一些调试后,我可以看到放入 paginatedCursor 的光标始终为空。它可能与查询格式化的方式有关。我现在正在使用查询构建,如果我能正常工作,我会回复。

【问题讨论】:

  • 所以我通过删除查询构建部分中的 * 来完成这项工作,然后我还创建了自己的数据库以从中提取结果。然后它终于奏效了。
  • 如果你得到最新版本?就我而言,如果我搜索 Gmail,我有 1 个结果

标签: android search android-tv


【解决方案1】:

Android TV Search 使用标准的 Android 搜索机制来搜索第三方应用。您可以找到有关 Android 搜索机制 here 的 API 指南。

您还可以查看名为“Searchable Dictionary”的遗留示例应用程序,以展示搜索机制。它可以在 Android SDK 示例应用程序中找到。 SearchManager 类中定义了许多以“SUGGEST_COLUMN_”为前缀的列名,表示您的应用可以提供哪些数据字段,例如here

在 Android Lollipop 版本中,引入了一些专为 Android TV 搜索而设计的新列。可以找到新增的列here.

一些重要的列是:

SUGGEST_COLUMN_TEXT_1 SUGGEST_COLUMN_TEXT_2 SUGGEST_COLUMN_RESULT_CARD_IMAGE SUGGEST_COLUMN_CONTENT_TYPE SUGGEST_COLUMN_VIDEO_WIDTH SUGGEST_COLUMN_VIDEO_HEIGHT SUGGEST_COLUMN_PRODUCTION_YEAR SUGGEST_COLUMN_DURATION

【讨论】:

  • 您好 Verma 感谢您的回答。我已经阅读了几次文档,我了解了一切应该如何工作的理论,但在实践中有些东西不能正常工作。甚至谷歌自己的示例应用程序也不起作用并给出错误。如果您对如何纠正我在上面发布的问题有一些反馈,我很乐意听到。
猜你喜欢
  • 2018-08-15
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
  • 1970-01-01
  • 1970-01-01
  • 2019-03-23
  • 2018-11-15
  • 2021-01-27
相关资源
最近更新 更多