2015-05-14 4 views
2

Я пытаюсь сделать приложение 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; 

Я просто пытаюсь вернуть тестовый курсор, чтобы увидеть, как глобальный поиск работает, но я должен делать что-то неправильно.

+0

Я бы предложил использовать 'BaseColumns._ID' вместо строки' _id'. – Sebastiano

+0

если он падает, что такое трассировка? – pskink

+0

'BaseColumns._ID' вернее, но это не проблема. В LogCat нет следа исключений, поэтому я не знаю, какую ошибку я получаю. – susomena

ответ

0

Я нашел проблему. Я думал, что только SearchManager.SUGGEST_COLUMN_TEXT_1, и SearchManager.SUGGEST_COLUMN_PRODUCTION_YEAR поля были обязательными (это то, о чем говорит руководство по Android-разработчикам Android), но также требуется SearchManager.SUGGEST_COLUMN_RESULT_CARD_IMAGE. Без изображения карты глобальный поиск вылетает, возможно, потому, что пытается установить нулевой битмап.

 Смежные вопросы

  • Нет связанных вопросов^_^