在 ContentProvider 查询方法中返回 MatrixCursor 导致 Android TV 全局搜索崩溃
Returning MatrixCursor in ContentProvider query method makes Android TV global search crash
我正在尝试让我的 Android 电视应用程序可搜索,并且我正在测试全局搜索。我创建了一个 ContentProvider,当我搜索某些内容时会调用它的查询方法。当我填充游标并 return 它时,问题就来了,在那一刻全局搜索崩溃并且 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;
我只是想 return 测试光标以查看全局搜索的工作原理,但我一定是做错了什么。
我发现了问题。我认为只有 SearchManager.SUGGEST_COLUMN_TEXT_1
、SearchManager.SUGGEST_COLUMN_CONTENT_TYPE
和 SearchManager.SUGGEST_COLUMN_PRODUCTION_YEAR
字段是必需的(Android 开发人员电视指南就是这么说的),但 SearchManager.SUGGEST_COLUMN_RESULT_CARD_IMAGE
也是必需的。没有卡片图像全局搜索崩溃,可能是因为试图设置空位图。
我正在尝试让我的 Android 电视应用程序可搜索,并且我正在测试全局搜索。我创建了一个 ContentProvider,当我搜索某些内容时会调用它的查询方法。当我填充游标并 return 它时,问题就来了,在那一刻全局搜索崩溃并且 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;
我只是想 return 测试光标以查看全局搜索的工作原理,但我一定是做错了什么。
我发现了问题。我认为只有 SearchManager.SUGGEST_COLUMN_TEXT_1
、SearchManager.SUGGEST_COLUMN_CONTENT_TYPE
和 SearchManager.SUGGEST_COLUMN_PRODUCTION_YEAR
字段是必需的(Android 开发人员电视指南就是这么说的),但 SearchManager.SUGGEST_COLUMN_RESULT_CARD_IMAGE
也是必需的。没有卡片图像全局搜索崩溃,可能是因为试图设置空位图。