Как интегрировать поиск с помощью Google Voice Search?
Я пытаюсь реализовать интеграцию Ok Google Voice Search. Тем не менее, я не могу подключиться к своему приложению, когда говорю "Поиск Android на имя приложения". Вместо этого он просто ищет термин в Интернете.
Вот что я сделал:
-
Создать/res/xml/searchable.xml
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/search_hint">
</searchable>
-
Создайте новую активность
public class ExposedSearchActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String search = getIntent().getStringExtra(SearchManager.QUERY);
Log.wtf("", "q=" + search);
}
}
-
Прикрепите фильтры намерений к активности, доступной для поиска.
<activity
android:name=".search.ExposedSearchActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="fullSensor">
<!--Deeplink from google now-->
<intent-filter>
<action android:name="com.google.android.gms.actions.SEARCH_ACTION"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<!--Making it searchable-->
<intent-filter>
<action android:name="android.intent.action.SEARCH"/>
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
-
Мое тестовое устройство - это Nexus 5, работающий с Lollipop LPX13D с Google Search 4.0.26.1499465.arm
Какие еще шаги я мог бы забыть? Спасибо заранее.
Ответы
Ответ 1
После многих поисков я нашел ответ в комментарии в Google+ автором сообщения в блоге Яреком Вилкевичем.
Да, приложение должно быть опубликовано в Play Store, чтобы функция для работы. Один из способов помочь отладить ваш конец - вызвать с помощью adb, например: adb shell am start -a com.google.android.gms.actions.SEARCH_ACTION -e запрос foo
Итак, я протестировал эту функцию в приложении, которое уже находится в Play Маркете, и работает безупречно.