2015-03-09 1 views
2

Я пытаюсь внедрить новую функцию Google, Поиск с помощью определенного приложения. Я хочу спросить что-то google теперь в этом формате «поиск ... на myApp», но это не сработает.SEARCH_ACTION не работает в моем SearchActivity

Это единственный код, Google рекомендует добавлять в AndroidManifest:

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:configChanges="orientation|screenSize" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".SearchActivity" 
     android:label="@string/title_activity_search" 
     android:parentActivityName=".MainActivity" > 
     <intent-filter> 
      <action android:name="com.google.android.gms.actions.SEARCH_ACTION"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
     </intent-filter> 
    </activity> 
</application> 

StartActivity:

import com.google.android.gms.actions.SearchIntents; 

public class SearchActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_search); 
    if (savedInstanceState == null) { 
     getFragmentManager().beginTransaction() 
       .add(R.id.container, new PlaceholderFragment()) 
       .commit(); 
    } 

    Intent i = getIntent(); 
    if (SearchIntents.ACTION_SEARCH.equals(i.getAction())) { 
     String query = i.getStringExtra(SearchManager.QUERY); 
     Toast.makeText(this, query, Toast.LENGTH_SHORT).show(); 
    } 
} 

Мое приложение не подписано! Может быть, это проблема?

+0

Добавить код, который вы используете здесь. – Eenvincible

+0

Я отредактировал @Eenvincible !! – DanielM

ответ

0

Не зная остальную часть кода, я предлагаю читать на Creating a Search Interface.

На первый взгляд, это выглядит, как вы пропустили

<meta-data android:name="android.app.searchable" 
      android:resource="@xml/searchable"/> 

после вашего IntentFilter.

ETA: Я не думаю, что шоу Toast в onCreate предоставит вам любую информацию. Поиск будет происходить после метода onCreate. Точка останова через ваш onCreate и посмотреть, что такое значение «i» (ваше намерение).

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