Android: как объявить активность основным и доступным для поиска?

Я бы хотел, чтобы моя основная активность была доступна для поиска, но когда я изменяю manifest.xml на

 <intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
       <!-- declare the default searchable Activity for the whole app -->
       <action android:name="android.intent.action.SEARCH" />            
 </intent-filter>

он не может найти основное действие, и приложение не запускается. Есть идеи? не лучше ли использовать такую ​​же активность, как и для поиска? Благодаря, Алиса

Ответ 1

Вам нужно добавить новый фильтр намерений с помощью action.SEARCH

<activity
    android:name=".activities.YourActivity">
    <intent-filter>
                <category android:name="android.intent.category.LAUNCHER" />
                <action android:name="android.intent.action.MAIN" />
    </intent-filter>
     <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
    </intent-filter>
</activity>

Ответ 2

Вам нужно добавить новое действие в файл манифеста и ссылку на поиск метаданных, smth:

<intent-filter>
  <action android:name="android.intent.action.SEARCH"/>
  <action android:name="android.intent.action.MAIN"/>
  <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<meta-data android:name="android.app.searchable"
           android:resource="@xml/searchable"/>