Defines all search configurations used with the search dialog.
attributes:
android:label
- String resource. Required. This is the name of your application.
It should normally be the same as the name applied to the {@code android:label} attribute of your {@code <activity>} or
{@code
<application>} manifest element. This is only visible to the user when you set
android:includeInGlobalSearch
"true", in which case, this label is used to identify
your application as a searchable item in the system's search settings.
android:hint
- String resource. The text to display in the search text field when no text has
been entered. This is recommended in order to provide a hint to the user about what
content is searchable. For consistency among other Android applications, you should format the
string for {@code android:hint} as "Search <content-or-product>". For example,
"Search songs and artists" or "Search YouTube".
android:searchMode
- Keyword. Sets additional modes that control the search presentation.
Specifically, the available modes define how the query text in the search dialog's text box
should be rewritten when a suggestion is focused. The following mode values are accepted:
Value | Description |
"queryRewriteFromData" |
If set, this causes the suggestion column
{@link android.app.SearchManager#SUGGEST_COLUMN_INTENT_DATA} to be considered as the
text for suggestion query
rewriting. This should only be used when the values in
{@link android.app.SearchManager#SUGGEST_COLUMN_INTENT_DATA} are suitable for user
inspection and editing -
typically, HTTP/HTTPS Uri's. |
"queryRewriteFromText" |
If set, this causes the suggestion
column {@link android.app.SearchManager#SUGGEST_COLUMN_TEXT_1} to be considered as the
text for suggestion query
rewriting. This should be used for suggestions in which no query
text is provided and the {@link android.app.SearchManager#SUGGEST_COLUMN_INTENT_DATA}
values are not suitable
for user inspection and editing. |
For more information, see the discussion about rewriting the query text in Adding Custom Suggestions.
android:searchButtonText
- String resource. The text to display in the button that executes the search. By
default, the button shows a search icon (a magnifying glass), which is ideal for
internationalization.
android:inputType
- Keyword. Defines the type of input method (soft-keyboard) to use with the search
dialog. For most searches, in which free form text is expected, this attribute is not needed and
the default input method should be used. See {@link android.R.attr#inputType} for a list of suitable
values for this attribute.
android:imeOptions
- Keyword. Supplies additional options for the input method.
For most searches, in which free form text is expected, this attribute is not needed,
and will default to "actionSearch" (provides the "search" button instead of a carriage
return). See {@link android.R.attr#imeOptions} for a list of suitable values for this attribute.
If you have defined a content provider to generate search suggestions, you need to
define additional attributes in order to configure communications with the Content
Provider. When providing search suggestions, you'll need some of the following
{@code <searchable>} attributes:
android:searchSuggestAuthority
- String. Required to provide search suggestions.
This value must match the authority string provided in the {@code android:authorities}
attribute of the {@code <provider>} element.
android:searchSuggestPath
- String. This path will be used as a portion of the suggestions
query {@link android.net.Uri}, after the prefix and authority, but before
the standard suggestions path.
This is only required if you have a single content provider issuing different types
of suggestions (e.g. for different data types) and you need
a way to disambiguate the suggestions queries when they are received.
android:searchSuggestSelection
- String. This value will be passed into your
query function as the {@code selection} parameter. Typically this will be a WHERE clause
for your database, and should contain a single question mark, which is a place-holder for the
actual query string that has been typed by the user. However, you can also use any non-null
value to simply trigger the delivery of the query text via the {@code
selectionArgs} parameter (and then ignore the {@code selection} parameter).
android:searchSuggestIntentAction
- String. The default Intent action to be used when a user
clicks on a search suggestion (such as {@code "android.intent.action.VIEW"}).
If not overridden by the selected suggestion (via the {@link
android.app.SearchManager#SUGGEST_COLUMN_INTENT_ACTION} column), this value will
be placed in the action field of the {@link android.content.Intent} when the
user clicks a suggestion.
android:searchSuggestIntentData
- String. The default Intent data to be used when a user
clicks on a search suggestion.
If not overridden by the selected suggestion (via the {@link
android.app.SearchManager#SUGGEST_COLUMN_INTENT_DATA} column), this value will be
placed in the data field of the {@link android.content.Intent} when the user clicks
a suggestion.
android:searchSuggestThreshold
- Integer. The minimum number of characters needed to
trigger a suggestion look-up. Only guarantees that a source will not be
queried for anything shorter than the threshold. The default value is 0.
For more information about the above attributes for search suggestions, see the guides for
Adding Recent Query Suggestions and
Adding Custom Suggestions.
Beyond providing search suggestions while using your application's search dialog, you
can also configure your search suggestions to be made available to Quick Search Box,
which will allow users so receive search suggestions from your application content from outside
your application. When providing search suggestions to Quick Search Box, you'll need some of the
following {@code <searchable>} attributes:
android:includeInGlobalSearch
- Boolean. Required to provide search suggestions in
Quick Search Box. "true" if you want your suggestions to be
included in the globally accessible Quick Search Box. Note that the user must
still enable your application as a searchable item in the system search settings in order
for your suggestions to appear in Quick Search Box.
android:searchSettingsDescription
- String. Provides a brief description of the search suggestions that you provide
to Quick Search Box, which will be displayed in the searchable items entry for your application.
Your description should concisely describe the content that is searchable. For example, "Artists,
albums, and tracks" for a music application, or "Saved notes" for a notepad application.
android:queryAfterZeroResults
- Boolean. "true" if you want your content provider to be invoked for
supersets of queries that have returned zero results for in the past. For example, if a
source returned zero results for "bo", it would be ignored for "bob". If "false",
this source will only be ignored for a single session; the next time the search dialog
is invoked, all sources will be queried. The default value is false.
To enable voice search for your search dialog, you'll need some of the
following {@code <searchable>} attributes:
android:voiceSearchMode
- Keyword. Required to provide voice search capabilities.
Enables voice search for the search dialog, with a specific mode for voice search.
(Voice search may not be provided by the device, in which case these flags will
have no effect.) The following mode values are accepted:
Value | Description |
"showVoiceSearchButton" |
Display a voice search button. This only
takes effect if voice search is available on the device. If set, then either
{@code "launchWebSearch"} or {@code "launchRecognizer"} must also be set
(separated by the pipe | character). |
"launchWebSearch" |
The voice search button will take the user directly
to a built-in voice web search activity. Most applications will not use this flag, as
it will take the user away from the Activity in which search was invoked. |
"launchRecognizer" |
The voice search button will take
the user directly to a built-in voice recording activity. This Activity
will prompt the user to speak, transcribe the spoken text, and forward the resulting
query text to the searchable Activity, just as if the user had typed it into the
search UI and clicked the search button. |
android:voiceLanguageModel
- Keyword. The language model that
should be used by the voice recognition system. The following values are accepted:
Value | Description |
"free_form" |
Use a language model based on free-form speech recognition. This is the
default. |
"web_search" |
Use a language model based on web search terms. |
Also see
{@link android.speech.RecognizerIntent#EXTRA_LANGUAGE_MODEL} for more
information.
android:voicePromptText
- String. An additional message to display in the voice input dialog.
android:voiceLanguage
- String. The spoken language to be expected, expressed as the string value of
a constants in {@link java.util.Locale} (for example, {@code "de"} for German or {@code "fr"} for
French). This is only needed if it is different from the current value of {@link
java.util.Locale#getDefault() Locale.getDefault()}.
android:voiceMaxResults
- Integer. Forces the maximum number of results to return,
including the "best" result which will always be provided as the {@link
android.content.Intent#ACTION_SEARCH} Intent's primary
query. Must be 1 or greater. Use {@link android.speech.RecognizerIntent#EXTRA_RESULTS} to
get the results from the Intent.
If not provided, the recognizer will choose how many results to return.