在ContentProvider查询方法中返回MatrixCursor会使Android TV全局搜索崩溃

时间:2015-05-14 09:42:02

标签: android television android-tv

我正在努力让我的Android TV应用可供搜索,而我正在测试全球搜索。我创建了一个ContentProvider,当我搜索某些内容时会调用它的查询方法。问题出现在我填充游标并返回时,全局搜索崩溃并且LogCat没有显示任何内容。我在本节中的代码是:

MatrixCursor matrixCursor = new MatrixCursor(new String[]{
        "_id",
        SearchManager.SUGGEST_COLUMN_TEXT_1,
        SearchManager.SUGGEST_COLUMN_CONTENT_TYPE,
        SearchManager.SUGGEST_COLUMN_PRODUCTION_YEAR,
        SearchManager.SUGGEST_COLUMN_INTENT_ACTION,
        SearchManager.SUGGEST_COLUMN_INTENT_DATA,
        SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID
});

matrixCursor.addRow(new Object[]{
        1,
        "movie 1",
        "video/mp4",
        2014,
        Intent.ACTION_SEARCH,
        "content://myauthority/videos/",
        1
});

matrixCursor.addRow(new Object[]{
        2,
        "video 2",
        "video/mp4",
        2013,
        Intent.ACTION_SEARCH,
        "content://myauthority/videos/",
        2
});

matrixCursor.addRow(new Object[]{
        2,
        "video 3",
        "video/mp4",
        2012,
        Intent.ACTION_SEARCH,
        "content://myauthority/videos/",
        3
});

return matrixCursor;

我只是想返回一个测试光标,看看全局搜索是如何工作的,但我一定是做错了。

1 个答案:

答案 0 :(得分:0)

我发现了问题。我认为只需要SearchManager.SUGGEST_COLUMN_TEXT_1SearchManager.SUGGEST_COLUMN_CONTENT_TYPESearchManager.SUGGEST_COLUMN_PRODUCTION_YEAR字段(这是Android开发者电视指南所说的),但SearchManager.SUGGEST_COLUMN_RESULT_CARD_IMAGE也是必需的。没有卡片图像,全局搜索会崩溃,可能是因为尝试设置空位图。