Как обрабатывать как результаты быстрого поиска, так и последние предложения по поиску?

Я пытаюсь реализовать как последние предложения, так и custom предложений в глобальном поиске в одном приложении. Они оба используют один и тот же путь в провайдере, поэтому кажется, что для них невозможно вернуть разные результаты. Например, только недавний поиск предложений и реальных результатов поиска в окне быстрого поиска.

Любая идея о том, как это сделать?

Ответ 1

Глядя на файл с возможностью поиска, похоже, что вы должны иметь возможность использовать разные значения android: searchSuggestPath для устранения двусмысленности между двумя.

Ответ 2

Это возможно, хотя для этого требуется немного обходного пути. Мне еще предстоит полностью проверить это на нескольких платформах, но вот моя реализация: Collectionista SearchRecentSuggestionsContentProvider.java

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

Важно, чтобы вы понимали, что вам не нужно дублировать searchable.xml или любой из блоков манифеста. Вы используете тот же самый авторитет.

Кроме того, последние предложения ограничивают использование android:searchSuggestSelection=" ?", поэтому вам придется иметь дело с тем, что у вашего провайдера для запросов пользовательских предложений. Вероятно, вы захотите использовать android:searchSuggestPath, поэтому поймите, что запросы для последних предложений поступают к этому Uri и должны быть отправлены на путь Uri.

Оба предложения будут отображаться так же, как они должны быть возвращены с помощью одного и того же курсора.

Если вы заметили какие-либо ошибки, не могли бы вы так любезно сообщить об этом мне?