Получить поиск от Google Now

Поэтому я попытался реализовать это - Самый быстрый маршрут между голосовым поиском и вашим приложением

То, что у меня есть до сих пор, это...

В манифесте:

<activity android:name=".MainActivity">
<intent-filter>
    <action android:name="com.google.android.gms.actions.SEARCH_ACTION"/>
    <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

In MainActivity:

if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
        String query = intent.getStringExtra(SearchManager.QUERY);
        editText.setText(query);

}

Если я ввожу название своего приложения в Google Now, оно отображается. Если я открою его, ничего не произойдет, поэтому я не получил поисковый запрос (имя приложения).

Как мне реализовать то, что описано в сообщении «Окей, Google, ищи пиццу в MyApp»?


person Frozen Crayon    schedule 03.11.2014    source источник
comment
Вы выполняли голосовой поиск «окей, Google, ищите QUERY в MyApp»? Просто ввод имени вашего приложения не активирует эту функцию.   -  person ianhanniballake    schedule 03.11.2014
comment
О, разве это не может быть MyApp QUERY?   -  person Frozen Crayon    schedule 03.11.2014
comment
@АрджунУ. это сработало для вас ... Я попробовал то же самое, и оно отлично работает с помощью команды adb, но это не сработало с поиском Google Now. Будет ли это работать только после того, как оно будет запущено ... ??   -  person Harry Sharma    schedule 21.07.2016


Ответы (2)


Согласно сообщению в блоге , запросы имеют формат:

Окей, Google, поищите пицца на Eat24.

Хорошо, Google, найдите отели на Мауи на TripAdvisor.

Вы заметите, что выделенная полужирным шрифтом часть — это поисковый термин, который получает ваше приложение, когда в ваше приложение отправляется успешный голосовой поиск в правильном формате.

person ianhanniballake    schedule 03.11.2014
comment
Это не работает для меня. Я трижды проверил все, но просто не могу доставить этот поисковый запрос в свое приложение. Кто-нибудь заставил это работать? - person Chaitanya; 09.11.2014
comment
Что ж... похоже, приложение нужно опубликовать в Play Store: plus.google.com /+AndroidDevelopers/posts/afSRdDQiy1N — ищите комментарии Ярека Вилькевича. Собираюсь попробовать это дальше. - person Chaitanya; 09.11.2014
comment
@ Чайтанья, у меня это сработало. Нет необходимости публиковать приложение в магазине. У вас есть Google сейчас на вашем телефоне? - person Frozen Crayon; 06.02.2015
comment
@Chaitanya: вам нужно добавить некоторые метаданные в манифест в соответствии с этим stackoverflow.com/questions/11699206/ . По какой-то причине это неясно в документации для разработчиков Android. - person Arun Abraham; 20.06.2015

Кроме того, способ проверки Intent также может отличаться. Только это сработало для меня. Поскольку намерение, упомянутое в документации, таково.

Intent intent = getIntent();
if (Intent.ACTION_SEARCH.equals(intent.getAction())
        || "com.google.android.gms.actions.SEARCH_ACTION".equals(intent.getAction())) {
    externalQuery = intent.getStringExtra(SearchManager.QUERY);
    //String xquery = query;
}
person sivag1    schedule 04.02.2015
comment
Вводить «com.google.android.gms.actions.SEARCH_ACTION.equals(intent.getAction())» действительно нехорошо. Гораздо лучше было бы "SearchIntents.ACTION_SEARCH.equals(intent.getAction())" - person Mateusz Pryczkowski; 05.01.2016