Info

<searchable>

Defines all application search configurations, including settings for text and voice searches performed within the application. It accepts the following attributes:

• label - Required. This is the name for your application, as it will appear to the user. This will be visible only if searchMode is set to "showSearchLabelAsBadge" (see below).

• hint - This is the text to display in the search text field when no text has been entered. This is recommended in order to provide context to the search about to be performed (e.g., "Search the Dictionary").

• searchMode - If provided and non-zero, this sets additional modes for control of the search presentation. The following mode values are accepted:

o showSearchLabelAsBadge - If set, this enables the display of the search target (label) within the search bar.

o queryRewriteFromData - If set, this causes the suggestion column SUGGEST_COLUMN_INTENT_DATA to be considered as the text for suggestion query rewriting. This should only be used when the values in SUGGEST_COLUMN_INTENT_DATA are suitable for user inspection and editing - typically, HTTP/HTTPS Uri's.

o queryRewriteFromText - If set, this causes the suggestion column 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 SUGGEST_COLUMN_INTENT_DATA values are not suitable for user inspection and editing.

More than one of the above values for searchMode can be used at once. For example, you can declare two modes at once, like this:

searchMode="queryRewriteFromData|queryRewriteFromText"

• inputType - If provided, supplies a hint about the type of search text the user will be entering. For most searches, in which free form text is expected, this attribute is not needed. See inputType for a list of suitable values for this attribute.

• imeOptions - If provided, 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". See imeOptions for a list of suitable values for this attribute.

If you have defined a content provider to generate search suggestions, you need to provide some more searchable metadata in order to configure communications with the content provider. The following are additional <searchable> attributes for use when providing search suggestions:

• searchSuggestAuthority - Required to provide search suggestions. This value must match the authority string provided in the provider section of your manifest.

• searchSuggestPath - If provided, this path will be inserted in the suggestions query Uri, after the authority you have provide 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.

• searchSuggestSelection - If provided, this value will be passed into your query function as the selection parameter. Typically this will be a WHERE clause for your database, and will contain a single question mark, which represents 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 selection arguments), and then use the query text in any way appropriate for your provider (ignoring the actual text of the selection parameter.)

• searchSuggestIntentAction - The default Intent action to be used when a user clicks on a search suggestion. If provided, and not overridden by the selected suggestion, this value will be placed in the action field of the Intent when the user clicks a suggestion.

• searchSuggestIntentData - The default Intent data to be used when a user clicks on a search suggestion. If provided, and not overridden by the selected suggestion, this value will be placed in the data field of the Intent when the user clicks a suggestion.

Beyond providing search suggestions while using your application's local search, 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. The following are additional <searchable> attributes for use when providing search suggestions to Quick Search Box:

• includeInGlobalSearch - Required to provide search suggestions in Quick Search Box. If true, this indicates the search suggestions provided by your application should be included in the globally accessible Quick Search Box. 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.

• searchSettingsDescription - If provided, this provides a brief description of the search suggestions that you provide to Quick Search Box, and will be displayed in the search settings entry for your application.

• queryAfterZeroResults - Indicates whether a source should be invoked for supersets of queries it has returned zero results for in the past. For example, if a source returned zero results for "bo", it would be ignored for "bob". If set to 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.

• searchSuggestThreshold - Indicates the minimum number of characters needed to trigger a source lookup from Quick Search Box. Only guarantees that a source will not be queried for anything shorter than the threshold. The default value is 0.

To enable voice search for your Activity, you can add fields to the searchable metadata that enable and configure voice search. The following are additional <searchable> attributes for use when implementing voice search:

• voiceSearchMode - Required to provide voice search capabilities. If provided and non-zero, enables 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:

o showVoiceSearchButton - If set, display a voice search button. This only takes effect if voice search is available on the device. If set, then "launchWebSearch" or "launchRecognizer" must also be set.

o launchWebSearch - If set, 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.

o launchRecognizer - If set, 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.

• voiceLanguageModel- A string constant from RecognizerIntent. If provided, this specifies the language model that should be used by the voice recognition system. See EXTRA LANGUAGE MODEL for more information. If not provided, the default value

LANGUAGE MODEL FREE FORM will be used.

• voicePromptText - A string. If provided, this specifies a prompt that will be displayed during voice input. If not provided, a default prompt will be displayed.

• voiceLanguage - A string constant from Locale. If provided, this specifies the spoken language to be expected. This is only needed if it is different from the current value of getDefault().

• voiceMaxResults - If provided, enforces the maximum number of results to return, including the "best" result which will always be provided as the SEARCH intent's primary query. Must be one or greater. Use EXTRA_RESULTS to get the results from the intent. If not provided, the recognizer will choose how many results to return.

<actionkey>

Defines a shortcut key for a search action.

• keycode - Required. This attribute denotes the action key you wish to respond to. Note that not all action keys are actually supported using this mechanism, as many of them are used for typing, navigation, or system functions. This will be added to the ACTION SEARCH Intent that is passed to your searchable Activity. To examine the key code, use getIntExtra(SearchManager.ACTION KEY). Note that, in addition to the keycode, you must also provide one or more of the action specifier attributes below.

• queryActionMsg - If you wish to handle an action key during normal search query entry, you must define an action string here. This will be added to the ACTION SEARCH Intent that is passed to your searchable Activity. To examine the string, use getStringExtra(SearchManager.ACTION MSG).

• suggestActionMsg - If you wish to handle an action key while a suggestion is being displayed and selected, there are two ways to handle this. If all of your suggestions can handle the action key, you can simply define the action message using this attribute. This will be added to the ACTION SEARCH Intent that is passed to your searchable Activity. To examine the string, use getStringExtra(SearchManager.ACTION MSG).

• suggestActionMsgColumn - If you wish to handle an action key while a suggestion is being displayed and selected, but you do not wish to enable this action key for every suggestion, then you can use this attribute to control it on a suggestion-by-suggestion basis. First, you must define a column (and name it here) where your suggestions will include the action string. Then, in your content provider, you must provide this column, and when desired, provide data in this column. The search manager will look at your suggestion cursor, using the string provided here in order to select a column, and will use that to select a string from the cursor. That string will be added to the ACTION SEARCH Intent that is passed to your searchable Activity. To examine the string, use getStringExtra(SearchManager.ACTION MSG). If the data does not exist for the selection suggestion, the action key will be ignored.

0 0

Post a comment