2014-11-17 2 views
10

Я пытаюсь реализовать Ok Google Voice Search integration. Тем не менее, я не могу подключиться к своему приложению, когда говорю «Поиск Android на имя приложения». Вместо этого он просто ищет термин в Интернете.Как интегрировать поиск с помощью Google Voice Search?

Вот что я сделал:

  1. Создать /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> 
    
  2. Создать новую активность

    public class ExposedSearchActivity extends Activity { 
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
         super.onCreate(savedInstanceState); 
    
         String search = getIntent().getStringExtra(SearchManager.QUERY); 
         Log.wtf("", "q=" + search); 
        } 
    } 
    
  3. Приложить намерений фильтров к возможности для поиска

    <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> 
    
  4. Мой тест устройство является Nexus 5 работает Lollipop LPX13D с Google Search 4.0.26.1499465.arm

Какие шаги могли бы я забыл? Заранее спасибо.

+0

@ 1, спасибо за ваш вклад. К сожалению, я пробовал оба метода безрезультатно. T___T –

+1

@SomeNoobStudent Является ли ваше приложение опубликовано в Play Маркете? Это должно быть до того, как функция будет работать. – adneal

+0

@ 4, действительно! Это недостающее звено. Похоже, мы можем тестировать только с помощью команд adb. –

ответ

14

После многих поисков я нашел ответ в comment on Google+ by the author of the blog post, Jarek Wilkiewicz.

Да, приложение должно быть опубликовано в магазине Play для того, чтобы функция работала. Один из способов, чтобы помочь отладить конец, чтобы вызвать намерение через ADB, например: ADB оболочка утра начать -a com.google.android.gms.actions.SEARCH_ACTION -e Foo запроса

Так я тестировал эта функция в приложении, которое уже находится в Play Маркете, и работает безупречно.

+0

Спасибо. Это заставляло меня гать в течение большей части дня – Dale

+0

Любые хаки, чтобы заставить его работать? Кто-нибудь нашел что-нибудь на этом? –

+0

@ 2 вы должны реализовать код в приложении, которое уже опубликовано в Play Маркете. Просто повторите шаги, перечисленные мной в моем вопросе, в опубликованном приложении, и голосовой поиск должен работать. –

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