Я пытаюсь сделать приложение Android TV доступным для поиска, и я тестирую глобальный поиск. Я создал ContentProvider, и метод запроса вызывается, когда я что-то ищу. Проблема возникает, когда я заполняю курсор, и я возвращаю его, в этот момент происходит сбой глобального поиска, и LogCat ничего не показывает об этом. Мой код в этом разделе это:Возвращение MatrixCursor в ContentProvider метод запроса делает глобальный поиск в Android TV
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;
Я просто пытаюсь вернуть тестовый курсор, чтобы увидеть, как глобальный поиск работает, но я должен делать что-то неправильно.
Я бы предложил использовать 'BaseColumns._ID' вместо строки' _id'. – Sebastiano
если он падает, что такое трассировка? – pskink
'BaseColumns._ID' вернее, но это не проблема. В LogCat нет следа исключений, поэтому я не знаю, какую ошибку я получаю. – susomena