public class SearchManager
extends Object
implements DialogInterface.OnDismissListener, DialogInterface.OnCancelListener
java.lang.Object | |
↳ | android.app.SearchManager |
此课程提供对系统搜索服务的访问。
实际上,您不会直接与此课程互动,因为搜索服务是通过Activity
和ACTION_SEARCH
Intent
方法提供的。 如果您确实需要直接访问SearchManager,则不要直接实例化此类。 相反,通过context.getSystemService(Context.SEARCH_SERVICE)
检索它。
有关使用搜索对话框和在应用程序中添加搜索建议的更多信息,请阅读 Search开发人员指南。
Nested classes |
|
---|---|
interface |
SearchManager.OnCancelListener 有关配置活动以监视搜索UI状态的信息,请参阅 |
interface |
SearchManager.OnDismissListener 有关配置活动以监视搜索UI状态的信息,请参阅 |
Public methods |
|
---|---|
ComponentName |
getGlobalSearchActivity() 获取全局搜索活动的名称。 |
SearchableInfo |
getSearchableInfo(ComponentName componentName) 获取有关可搜索活动的信息。 |
List<SearchableInfo> |
getSearchablesInGlobalSearch() 返回可包含在全局搜索中的可搜索活动的列表。 |
void |
onCancel(DialogInterface dialog) 此方法在API级别4中已弃用。此方法是过时的内部实现细节。 不使用。 |
void |
onDismiss(DialogInterface dialog) 此方法在API级别4中已弃用。此方法是过时的内部实现细节。 不使用。 |
void |
setOnCancelListener(SearchManager.OnCancelListener listener) 设置或清除将在搜索UI取消时调用的回调。 |
void |
setOnDismissListener(SearchManager.OnDismissListener listener) 设置或清除每当搜索UI被解除时将调用的回调。 |
void |
startSearch(String initialQuery, boolean selectInitialQuery, ComponentName launchActivity, Bundle appSearchData, boolean globalSearch) 启动搜索界面。 |
void |
stopSearch() 终止搜索UI。 |
void |
triggerSearch(String query, ComponentName launchActivity, Bundle appSearchData) 与 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
|
From interface android.content.DialogInterface.OnDismissListener
|
|
From interface android.content.DialogInterface.OnCancelListener
|
String ACTION_KEY
意图额外数据键:将此键用于Intent.ACTION_SEARCH和content.Intent.getIntExtra()
以获取用户用来触发此查询的键码。 如果用户只是按下搜索UI上的“GO”按钮,它将为零。 这主要与您的searchable.xml配置文件的actionkey元素中的keycode属性结合使用。
常量值:“action_key”
String ACTION_MSG
意图附加数据键:将此键用于Intent.ACTION_SEARCH和content.Intent.getStringExtra()
以获取为特定搜索操作键和/或建议定义的操作消息。 如果搜索是通过键入“enter”,触摸“GO”按钮或其他不涉及任何操作键的方式启动的,则它将为空。
常量值:“action_msg”
String APP_DATA
意图额外数据键:将此键用于Intent.ACTION_SEARCH和 content.Intent.getBundleExtra()
以获取由启动搜索的活动插入的任何其他特定于应用程序的数据。
常量值:“app_data”
String CURSOR_EXTRA_KEY_IN_PROGRESS
布尔额外数据键,建议提供者返回getExtras()
以指示搜索尚未完成。 搜索UI可以使用此功能来指示搜索正在进行中。 建议提供者可以以这种方式返回部分结果,并在有更多结果可用时发送光标上的更改通知。
常量值:“in_progress”
String EXTRA_DATA_KEY
意图额外数据键:此键将用于 SUGGEST_COLUMN_INTENT_EXTRA_DATA
列的额外填充。
常量值:“intent_extra_data_key”
String EXTRA_NEW_SEARCH
用于ACTION_WEB_SEARCH
意图的布尔额外数据键。 如果true
,此搜索应打开一个新的浏览器窗口,而不是使用现有的窗口。
常量值:“new_search”
String EXTRA_SELECT_QUERY
INTENT_ACTION_GLOBAL_SEARCH
意图的布尔额外数据键。 如果true
,则应在全局搜索活动启动时选择初始查询,以便用户可以轻松地将其替换为另一个查询。
常量值:“select_query”
String EXTRA_WEB_SEARCH_PENDINGINTENT
额外的数据密钥为ACTION_WEB_SEARCH
。 如果设置,则该值必须是PendingIntent
。 处理ACTION_WEB_SEARCH
意图的搜索活动将填写并启动挂起的意图。 数据URI将填入http或https URI,并且可填写EXTRA_HEADERS
。
常量值:“web_search_pendingintent”
int FLAG_QUERY_REFINEMENT
用于指定条目可用于查询优化的标志,即,单击查询优化图标时,搜索字段中的查询文本可替换为此条目中的文本。 建议列表应该在条目旁边显示一个可点击的图标。
使用此标志作为 SUGGEST_COLUMN_FLAGS
的位域。
常数值:1(0x00000001)
String INTENT_ACTION_GLOBAL_SEARCH
用于启动全局搜索活动的意图操作。 全球搜索提供商应该处理这个意图。 支持额外的数据项: QUERY
, EXTRA_SELECT_QUERY
, APP_DATA
。
常量值:“android.search.action.GLOBAL_SEARCH”
String INTENT_ACTION_SEARCHABLES_CHANGED
广播意图操作以通知可搜索列表或默认已更改。 如果组件缓存任何可搜索的数据并希望随时了解变化,组件应处理此意图。
常量值:“android.search.action.SEARCHABLES_CHANGED”
String INTENT_ACTION_SEARCH_SETTINGS
用于启动全局搜索设置活动的意图操作。 全球搜索提供商应该处理这个意图。
常量值:“android.search.action.SEARCH_SETTINGS”
String INTENT_ACTION_SEARCH_SETTINGS_CHANGED
广播意图操作以通知搜索设置已经以某种方式发生了变化。 无论是可搜索还是已启用或已禁用,或已选择其他网络搜索提供商。
常量值:“android.search.action.SETTINGS_CHANGED”
String INTENT_ACTION_WEB_SEARCH_SETTINGS
用于启动网络搜索提供商的设置活动的意图操作。 如果Web搜索提供者具有要实现的提供者特定设置,则应该处理此意图。
常量值:“android.search.action.WEB_SEARCH_SETTINGS”
String INTENT_GLOBAL_SEARCH_ACTIVITY_CHANGED
意图行动被广播通知全球搜索提供者已经改变。
常量值:“android.search.action.GLOBAL_SEARCH_ACTIVITY_CHANGED”
char MENU_KEY
这是默认菜单键用于调用搜索的快捷方式定义。 有关更多信息,请参阅Menu.Item.setAlphabeticShortcut()。
常量值:115(0x00000073)
int MENU_KEYCODE
这是默认菜单键用于调用搜索的快捷方式定义。 有关更多信息,请参阅Menu.Item.setAlphabeticShortcut()。
常量值:47(0x0000002f)
String QUERY
意图额外数据键:使用此键 content.Intent.getStringExtra()
从Intent.ACTION_SEARCH获取查询字符串。
常量值:“查询”
String SHORTCUT_MIME_TYPE
用于快捷方式验证的MIME类型。 您将在getType()函数的建议内容提供程序中使用它。
常量值:“vnd.android.cursor.item / vnd.android.search.suggest”
String SUGGEST_COLUMN_AUDIO_CHANNEL_CONFIG
建议光标的列名称。 可选的。 如果您的内容包含音频,则应提供此列以指定音频通道配置。 该列中的数据是具有诸如“1.0”或“5.1”之类的“channels.subchannels”格式的字符串。
常量值:“suggest_audio_channel_config”
String SUGGEST_COLUMN_CONTENT_TYPE
建议光标的列名称。 可选的。 如果您的内容是媒体类型,则应提供此列,以便搜索应用可以更多地了解您的内容。 列中的数据必须指定内容的MIME类型。
常量值:“suggest_content_type”
String SUGGEST_COLUMN_DURATION
建议光标的列名称。 可选的。 如果您的内容是视频或音频,则应提供此列以毫秒为单位指定内容的持续时间。 该列中的数据是长类型的。
常量值:“suggest_duration”
String SUGGEST_COLUMN_FLAGS
建议光标的列名称。 可选的。 此列用于指定每个项目的附加标志。 可以指定多个标志。
必须是 FLAG_QUERY_REFINEMENT
或0之一以指示没有标志。
常量值:“suggest_flags”
String SUGGEST_COLUMN_FORMAT
建议光标的列名称。 未使用 - 可以为null或列可以省略。
常量值:“suggest_format”
String SUGGEST_COLUMN_ICON_1
建议光标的列名称。 可选的。 如果您的光标包含此列,则所有建议都将以包含两个小图标的空间格式提供,其中一个位于左侧,另一个位于每个建议的右侧。 列中的数据必须是可绘制的资源ID,或者采用以下格式之一的URI:
SCHEME_CONTENT
)SCHEME_ANDROID_RESOURCE
)SCHEME_FILE
)openAssetFileDescriptor(Uri, String)
for more information on these schemes.
常量值:“suggest_icon_1”
String SUGGEST_COLUMN_ICON_2
建议光标的列名称。 可选的。 如果您的光标包含此列,则所有建议都将以包含两个小图标的空间格式提供,其中一个位于左侧,另一个位于每个建议的右侧。 列中的数据必须是可绘制的资源ID,或者采用以下格式之一的URI:
SCHEME_CONTENT
)SCHEME_ANDROID_RESOURCE
)SCHEME_FILE
)openAssetFileDescriptor(Uri, String)
for more information on these schemes.
常量值:“suggest_icon_2”
String SUGGEST_COLUMN_INTENT_ACTION
建议光标的列名称。 可选的。 如果此列存在并且此元素存在于给定行中,则这是在形成建议的意图时将使用的操作。 如果未提供该元素,则该操作将从XML元数据中的android:searchSuggestIntentAction字段中获取。 这些建议中至少有一个必须存在以产生意图。 注意:如果您的操作对所有建议都是相同的,则使用XML元数据指定它并将其从光标省略是更有效的。
常量值:“suggest_intent_action”
String SUGGEST_COLUMN_INTENT_DATA
建议光标的列名称。 可选的。 如果此列存在且此元素存在于给定行中,则这是在形成建议意图时将使用的数据。 如果未提供元素,则数据将从XML元数据的android:searchSuggestIntentData字段中获取。 如果未提供源,则Intent的数据字段将为空。 注意:如果您的数据对于所有建议都是相同的,或者可以使用常量部分和特定ID进行描述,则使用XML元数据指定它并从光标省略它会更有效。
常量值:“suggest_intent_data”
String SUGGEST_COLUMN_INTENT_DATA_ID
建议光标的列名称。 可选的。 如果此列存在并且此元素存在于给定行中,则“/”和此值将被附加到意图中的数据字段。 只有在数据字段已被设置为适当的基本字符串时才能使用。
常量值:“suggest_intent_data_id”
String SUGGEST_COLUMN_INTENT_EXTRA_DATA
建议光标的列名称。 可选的。 如果此列存在且此元素存在于给定行中,则这是在形成建议意图时将使用的数据。 如果未提供,则Intent的额外数据字段将为空。 此列允许您提供其他任意数据的建议,这些数据将作为关键字EXTRA_DATA_KEY
下的EXTRA_DATA_KEY
。
常量值:“suggest_intent_extra_data”
String SUGGEST_COLUMN_IS_LIVE
建议光标的列名称。 可选的。 如果您的内容是媒体类型,则应提供此列以指定您的内容是否为直播视频或实况音频等实时媒体。 该列中的值是整数类型,值为0表示非实况内容或1表示实况内容。
常量值:“suggest_is_live”
String SUGGEST_COLUMN_LAST_ACCESS_HINT
建议光标的列名称。 可选的。 在结果提供应用程序中上次访问项目时,可以使用此列指定System.currentTImeMillis()
(UTC时间的墙壁时间)中的时间。 如果设置了,可以用它来先显示最近使用的项目。
常量值:“suggest_last_access_hint”
String SUGGEST_COLUMN_PRODUCTION_YEAR
建议光标的列名称。 可选的。 如果您的内容是视频或音频,并且具有已知的生产年份,则应提供此列以指定您的内容的生产年份。 该列中的数据是整数类型的。
常量值:“suggest_production_year”
String SUGGEST_COLUMN_PURCHASE_PRICE
建议光标的列名称。 可选的。 如果您的内容是可购买的,您应该提供此栏以指定您的内容购买价格的可显示字符串表示形式,包括货币和金额。 如果它是免费的,你应该提供本地化的字符串来指定它是免费的。 如果内容不适用于购买,此栏可以省略。
常数值:“suggest_purchase_price”
String SUGGEST_COLUMN_QUERY
建议光标的列名称。 如果操作是ACTION_SEARCH
,则为ACTION_SEARCH
,否则为可选。 如果此列存在且此元素存在于给定行中,则这是在形成建议查询时将使用的数据。
常量值:“suggest_intent_query”
String SUGGEST_COLUMN_RATING_SCORE
建议光标的列名称。 可选的。 如果您的内容具有评分,则应提供此栏以指定您的内容的评分。 该列中的数据是浮点型的。 请参阅Rating
了解每个评级风格的有效评分。
常量值:“suggest_rating_score”
String SUGGEST_COLUMN_RATING_STYLE
建议光标的列名称。 可选的。 如果您的内容具有评分,则应提供此栏以指定您的内容的评分风格。 列中的数据必须是Rating
指定的常数值Rating
常量值:“suggest_rating_style”
String SUGGEST_COLUMN_RENTAL_PRICE
建议光标的列名称。 可选的。 如果您的内容可出租,则应提供此栏以指定您的内容租赁价格的可显示字符串表示形式,包括货币和金额。 如果它是免费的,你应该提供本地化的字符串来指定它是免费的。 如果内容不适用于租金,则可以省略此栏。
常数值:“suggest_rental_price”
String SUGGEST_COLUMN_RESULT_CARD_IMAGE
建议光标的列名称。 可选的。 如果光标包含此列,则形成建议时将显示图像。 对于肖像模式,图像的建议尺寸为270x400像素,横向模式为400x225像素。 列中的数据必须是可绘制的资源ID,或者采用以下格式之一的URI:
SCHEME_CONTENT
)SCHEME_ANDROID_RESOURCE
)SCHEME_FILE
)openAssetFileDescriptor(Uri, String)
for more information on these schemes.
常量值:“suggest_result_card_image”
String SUGGEST_COLUMN_SHORTCUT_ID
建议光标的列名称。 可选的。 此列用于指示搜索建议是否应作为快捷方式存储,以及是否应刷新。 如果缺少,结果将作为快捷方式存储并且从未进行验证。 如果设置为SUGGEST_NEVER_MAKE_SHORTCUT
,结果将不会被存储为快捷方式。 否则,将使用快捷方式ID检查使用SUGGEST_URI_PATH_SHORTCUT
最新建议。
常量值:“suggest_shortcut_id”
String SUGGEST_COLUMN_SPINNER_WHILE_REFRESHING
建议光标的列名称。 可选的。 此列用于指定在刷新此建议的快捷方式时应显示微调代替图标2。
常量值:“suggest_spinner_while_refreshing”
String SUGGEST_COLUMN_TEXT_1
建议光标的列名称。 需要。 这是将作为建议呈现给用户的主要文本行。
常量值:“suggest_text_1”
String SUGGEST_COLUMN_TEXT_2
建议光标的列名称。 可选的。 如果您的光标包含此列,则所有建议都将以两行格式提供。 第二行文字的外观小得多。
常量值:“suggest_text_2”
String SUGGEST_COLUMN_TEXT_2_URL
建议光标的列名称。 可选的。 这是一个将显示为第二行文本而不是SUGGEST_COLUMN_TEXT_2
。 这是一个单独的列,以便搜索UI知道将文本显示为URL,例如通过使用不同的颜色。 如果此列不存在,或者值为null
,则将使用SUGGEST_COLUMN_TEXT_2
。
常量值:“suggest_text_2_url”
String SUGGEST_COLUMN_VIDEO_HEIGHT
建议光标的列名称。 可选的。 如果您的内容是视频,则应提供此列以指定水平线的数量。 该列中的数据是整数类型的。
常量值:“suggest_video_height”
String SUGGEST_COLUMN_VIDEO_WIDTH
建议光标的列名称。 可选的。 如果您的内容是视频,则应提供此栏以指定垂直线的数量。 该列中的数据是整数类型的。
常量值:“suggest_video_width”
String SUGGEST_MIME_TYPE
建议数据的MIME类型。 您将在getType()函数的建议内容提供程序中使用它。
常量值:“vnd.android.cursor.dir / vnd.android.search.suggest”
String SUGGEST_NEVER_MAKE_SHORTCUT
当建议不应作为快捷方式存储在全局搜索中时,建议列 SUGGEST_COLUMN_SHORTCUT_ID
列值。
常量值:“_-1”
String SUGGEST_PARAMETER_LIMIT
添加到建议查询中的查询参数可限制返回的建议数量。 这个限制只是建议,建议提供者可能会选择忽略它。
常数值:“限制”
String SUGGEST_URI_PATH_QUERY
查询建议数据的Uri路径。 这是搜索管理器在根据用户输入查询您的内容提供商提供建议数据时将使用的路径(例如,查找部分匹配)。 通常你会使用这个URI匹配器。
常量值:“search_suggest_query”
String SUGGEST_URI_PATH_SHORTCUT
Uri路径进行快捷方式验证。 这是搜索管理器在查询您的内容提供商刷新快捷建议结果时将使用的路径,并检查它是否仍然有效。 当被问到时,来源可能会返回最新的结果,或者没有结果。 没有结果表示快捷方式指的是不再有效的提示。
也可以看看:
常量值:“search_suggest_shortcut”
String USER_QUERY
意图附加数据键:与content.Intent.getStringExtra()
一起使用此键来获取用户输入的查询字符串。 如果意图是选择建议的结果,则这可能与QUERY
的值不同。 在这种情况下, QUERY
将包含建议值SUGGEST_COLUMN_QUERY
,而USER_QUERY
将包含用户键入的字符串。
常量值:“user_query”
ComponentName getGlobalSearchActivity ()
获取全局搜索活动的名称。
Returns | |
---|---|
ComponentName |
SearchableInfo getSearchableInfo (ComponentName componentName)
获取有关可搜索活动的信息。
Parameters | |
---|---|
componentName |
ComponentName : The activity to get searchable information for. |
Returns | |
---|---|
SearchableInfo |
Searchable information, or null if the activity does not exist, or is not searchable. |
List<SearchableInfo> getSearchablesInGlobalSearch ()
返回可包含在全局搜索中的可搜索活动的列表。
Returns | |
---|---|
List<SearchableInfo> |
a list containing searchable information for all searchable activities that have the android:includeInGlobalSearch attribute set in their searchable meta-data. |
void onCancel (DialogInterface dialog)
此方法在API级别4中已弃用。
这种方法是一个过时的内部实现细节。 不使用。
这个方法将在对话框被取消时被调用。
Parameters | |
---|---|
dialog |
DialogInterface : The dialog that was canceled will be passed into the method. |
void onDismiss (DialogInterface dialog)
此方法在API级别4中已弃用。
这种方法是一个过时的内部实现细节。 不使用。
该方法将在对话框关闭时调用。
Parameters | |
---|---|
dialog |
DialogInterface : The dialog that was dismissed will be passed into the method. |
void setOnCancelListener (SearchManager.OnCancelListener listener)
设置或清除将在搜索UI取消时调用的回调。
Parameters | |
---|---|
listener |
SearchManager.OnCancelListener : The SearchManager.OnCancelListener to use, or null. |
void setOnDismissListener (SearchManager.OnDismissListener listener)
设置或清除每当搜索UI被解除时将调用的回调。
Parameters | |
---|---|
listener |
SearchManager.OnDismissListener : The SearchManager.OnDismissListener to use, or null. |
void startSearch (String initialQuery, boolean selectInitialQuery, ComponentName launchActivity, Bundle appSearchData, boolean globalSearch)
启动搜索界面。
搜索管理器将在重叠窗口中打开搜索窗口小部件,并且潜在的活动可能会变得模糊不清。 搜索条目状态将保持有效,直到发生以下事件之一:
stopSearch()
method, which will hide the search window and return focus to the activity from which it was launched.大多数应用程序不会使用此接口来调用搜索。 调用搜索的主要方法是调用Activity.onSearchRequested()
或Activity.startSearch()
。
Parameters | |
---|---|
initialQuery |
String : A search string can be pre-entered here, but this is typically null or empty. |
selectInitialQuery |
boolean : If true, the intial query will be preselected, which means that any further typing will replace it. This is useful for cases where an entire pre-formed query is being inserted. If false, the selection point will be placed at the end of the inserted query. This is useful when the inserted query is text that the user entered, and the user would expect to be able to keep typing. This parameter is only meaningful if initialQuery is a non-empty string. |
launchActivity |
ComponentName : The ComponentName of the activity that has launched this search. |
appSearchData |
Bundle : An application can insert application-specific context here, in order to improve quality or specificity of its own searches. This data will be returned with SEARCH intent(s). Null if no extra data is required. |
globalSearch |
boolean : If false, this will only launch the search that has been specifically defined by the application (which is usually defined as a local search). If no default search is defined in the current application or activity, global search will be launched. If true, this will always launch a platform-global (e.g. web-based) search instead. |
也可以看看:
void stopSearch ()
终止搜索UI。
通常,用户将通过启动搜索或取消来终止搜索UI。 该功能允许基础应用程序或活动提前取消搜索(出于任何原因)。
此功能可随时安全调用(即使没有搜索处于活动状态)。
void triggerSearch (String query, ComponentName launchActivity, Bundle appSearchData)
与startSearch(String, boolean, ComponentName, Bundle, boolean)
类似,但实际上在调用搜索对话框后触发搜索查询。 可用于测试目的。
Parameters | |
---|---|
query |
String : The query to trigger. If empty, request will be ignored. |
launchActivity |
ComponentName : The ComponentName of the activity that has launched this search. |
appSearchData |
Bundle : An application can insert application-specific context here, in order to improve quality or specificity of its own searches. This data will be returned with SEARCH intent(s). Null if no extra data is required. |