所以我按照 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 的光标始终为空。它可能与查询的格式化方式有关。我现在正在构建查询,如果我能正常工作,我会发回。
最佳答案
Android TV 搜索使用标准的 Android 搜索机制来搜索第三方应用。您可以找到有关 Android 搜索机制的 API 指南 here .
您还可以查看名为“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_HEIGHT SUGGEST_COLUMN_PRODUCTION_YEAR SUGGEST_COLUMN_DURATION
关于android - 如何使 Android TV 可以搜索应用内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29263456/