Как интегрировать поисковую активность с голосовым поиском Ok Google?
Я пытаюсь реализовать интеграцию с Google Voice Search Ok. Тем не менее, я не могу сделать глубокие ссылки на мое приложение, когда я говорю "Поиск Android по app_name". Вместо этого он просто ищет термин в сети.
Вот что я сделал:
Создать /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 4.0.26.1499465.arm
Какие еще шаги я мог забыть? Заранее спасибо.
1 ответ
После долгих поисков я нашел ответ в комментарии к Google+ автора блога Ярека Вилькевича.
Да, приложение должно быть опубликовано в Play Store, чтобы эта функция работала. Один из способов помочь отладить ваш конец - вызвать намерение через adb, например: adb shell am start -a com.google.android.gms.actions.SEARCH_ACTION -e query foo
Поэтому я протестировал эту функцию в приложении, которое уже есть в Play Store, и оно работает безупречно.
Я нашел рабочее решение для этих команд голосового поиска Google для нашего приложения Android.
Перейдите по ссылкам ниже, чтобы все заработало:
1) https://gist.github.com/raveeshbhalla/186325d1bb25d13bd7a0
2) https://github.com/google/search-samples/issues/24
3) https://antonioleiva.com/voice_search_google_now/
4) https://developers.google.com/voice-actions/system/
5) https://developer.android.com/guide/components/intents-common
В качестве вышеприведенного ответа указан Some Noob Student. я собираюсь дальше для того, чтобы проверить это с отладкой apk с добавлением строки в поисковом запросе?
Откройте командную строку на вашем компьютере, затем измените путь к вашему пути adb. затем выполните следующие команды.
Примечание: перед выполнением следующих команд закройте приложение отладки, затем протестируйте.
1) adb shell запускается -a com.google.android.gms.actions.SEARCH_ACTION -e запрос app_package_name
2) adb shell запускается -a com.google.android.gms.actions.SEARCH_ACTION -e запрос "Hello" app_package_name