/*
 * Copyright (C) 2010 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.speech;

import android.os.Bundle;

import java.util.ArrayList;

Constants for intents related to showing speech recognition results. These constants should not be needed for normal utilization of speech recognition. They would only be called if you wanted to trigger a view of voice search results in your application, or implemented if you wanted to offer a different view for voice search results with your application. The standard behavior here for someone receiving an ACTION_VOICE_SEARCH_RESULTS is to first retrieve the list of EXTRA_VOICE_SEARCH_RESULT_STRINGS, and use any provided HTML for that result in EXTRA_VOICE_SEARCH_RESULT_HTML, if available, to display the search results. If that is not available, then the corresponding url for that result in EXTRA_VOICE_SEARCH_RESULT_URLS should be used. And if even that is not available, then a search url should be constructed from the actual recognition result string.
/** * Constants for intents related to showing speech recognition results. * * These constants should not be needed for normal utilization of speech recognition. They * would only be called if you wanted to trigger a view of voice search results in your * application, or implemented if you wanted to offer a different view for voice search results * with your application. * * The standard behavior here for someone receiving an {@link #ACTION_VOICE_SEARCH_RESULTS} is to * first retrieve the list of {@link #EXTRA_VOICE_SEARCH_RESULT_STRINGS}, and use any provided * HTML for that result in {@link #EXTRA_VOICE_SEARCH_RESULT_HTML}, if available, to display * the search results. If that is not available, then the corresponding url for that result in * {@link #EXTRA_VOICE_SEARCH_RESULT_URLS} should be used. And if even that is not available, * then a search url should be constructed from the actual recognition result string. */
public class RecognizerResultsIntent { private RecognizerResultsIntent() { // Not for instantiating. }
Intent that can be sent by implementations of voice search to display the results of a search in, for example, a web browser. This intent should always be accompanied by at least EXTRA_VOICE_SEARCH_RESULT_STRINGS, and optionally but recommended, EXTRA_VOICE_SEARCH_RESULT_URLS, and sometimes EXTRA_VOICE_SEARCH_RESULT_HTML and EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS. These are parallel arrays, where a recognition result string at index N of EXTRA_VOICE_SEARCH_RESULT_STRINGS should be accompanied by a url to use for searching based on that string at index N of EXTRA_VOICE_SEARCH_RESULT_URLS, and, possibly, the full html to display for that result at index N of EXTRA_VOICE_SEARCH_RESULT_HTML. If full html is provided, a base url (or list of base urls) should be provided with EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS.
/** * Intent that can be sent by implementations of voice search to display the results of * a search in, for example, a web browser. * * This intent should always be accompanied by at least * {@link #EXTRA_VOICE_SEARCH_RESULT_STRINGS}, and optionally but recommended, * {@link #EXTRA_VOICE_SEARCH_RESULT_URLS}, and sometimes * {@link #EXTRA_VOICE_SEARCH_RESULT_HTML} and * {@link #EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS}. * * These are parallel arrays, where a recognition result string at index N of * {@link #EXTRA_VOICE_SEARCH_RESULT_STRINGS} should be accompanied by a url to use for * searching based on that string at index N of {@link #EXTRA_VOICE_SEARCH_RESULT_URLS}, * and, possibly, the full html to display for that result at index N of * {@link #EXTRA_VOICE_SEARCH_RESULT_HTML}. If full html is provided, a base url (or * list of base urls) should be provided with {@link #EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS}. */
public static final String ACTION_VOICE_SEARCH_RESULTS = "android.speech.action.VOICE_SEARCH_RESULTS";
The key to an extra ArrayList of Strings that contains the list of recognition alternates from voice search, in order from highest to lowest confidence.
/** * The key to an extra {@link ArrayList} of {@link String}s that contains the list of * recognition alternates from voice search, in order from highest to lowest confidence. */
public static final String EXTRA_VOICE_SEARCH_RESULT_STRINGS = "android.speech.extras.VOICE_SEARCH_RESULT_STRINGS";
The key to an extra ArrayList of Strings that contains the search urls to use, if available, for the recognition alternates provided in EXTRA_VOICE_SEARCH_RESULT_STRINGS. This list should always be the same size as the one provided in EXTRA_VOICE_SEARCH_RESULT_STRINGS - if a result cannot provide a search url, that entry in this ArrayList should be null, and the implementor of ACTION_VOICE_SEARCH_RESULTS should execute a search of its own choosing, based on the recognition result string.
/** * The key to an extra {@link ArrayList} of {@link String}s that contains the search urls * to use, if available, for the recognition alternates provided in * {@link #EXTRA_VOICE_SEARCH_RESULT_STRINGS}. This list should always be the same size as the * one provided in {@link #EXTRA_VOICE_SEARCH_RESULT_STRINGS} - if a result cannot provide a * search url, that entry in this ArrayList should be <code>null</code>, and the implementor of * {@link #ACTION_VOICE_SEARCH_RESULTS} should execute a search of its own choosing, * based on the recognition result string. */
public static final String EXTRA_VOICE_SEARCH_RESULT_URLS = "android.speech.extras.VOICE_SEARCH_RESULT_URLS";
The key to an extra ArrayList of Strings that contains the html content to use, if available, for the recognition alternates provided in EXTRA_VOICE_SEARCH_RESULT_STRINGS. This list should always be the same size as the one provided in EXTRA_VOICE_SEARCH_RESULT_STRINGS - if a result cannot provide html, that entry in this list should be null, and the implementor of ACTION_VOICE_SEARCH_RESULTS should back off to the corresponding url provided in EXTRA_VOICE_SEARCH_RESULT_URLS, if available, or else should execute a search of its own choosing, based on the recognition result string. Currently this html content should be expected in the form of a uri with scheme URI_SCHEME_INLINE for the Browser. In the future this may change to a "content://" uri or some other identifier. Anyone who reads this extra should confirm that a result is in fact an "inline:" uri and back off to the urls or strings gracefully if it is not, thus maintaining future backwards compatibility if this changes.
/** * The key to an extra {@link ArrayList} of {@link String}s that contains the html content to * use, if available, for the recognition alternates provided in * {@link #EXTRA_VOICE_SEARCH_RESULT_STRINGS}. This list should always be the same size as the * one provided in {@link #EXTRA_VOICE_SEARCH_RESULT_STRINGS} - if a result cannot provide * html, that entry in this list should be <code>null</code>, and the implementor of * {@link #ACTION_VOICE_SEARCH_RESULTS} should back off to the corresponding url provided in * {@link #EXTRA_VOICE_SEARCH_RESULT_URLS}, if available, or else should execute a search of * its own choosing, based on the recognition result string. * * Currently this html content should be expected in the form of a uri with scheme * {@link #URI_SCHEME_INLINE} for the Browser. In the future this may change to a "content://" * uri or some other identifier. Anyone who reads this extra should confirm that a result is * in fact an "inline:" uri and back off to the urls or strings gracefully if it is not, thus * maintaining future backwards compatibility if this changes. */
public static final String EXTRA_VOICE_SEARCH_RESULT_HTML = "android.speech.extras.VOICE_SEARCH_RESULT_HTML";
The key to an extra ArrayList of Strings that contains the base url to assume when interpreting html provided in EXTRA_VOICE_SEARCH_RESULT_HTML. A list of size 1 may be provided to apply the same base url to all html results. A list of the same size as EXTRA_VOICE_SEARCH_RESULT_STRINGS may be provided to apply different base urls to each different html result in the EXTRA_VOICE_SEARCH_RESULT_HTML list.
/** * The key to an extra {@link ArrayList} of {@link String}s that contains the base url to * assume when interpreting html provided in {@link #EXTRA_VOICE_SEARCH_RESULT_HTML}. * * A list of size 1 may be provided to apply the same base url to all html results. * A list of the same size as {@link #EXTRA_VOICE_SEARCH_RESULT_STRINGS} may be provided * to apply different base urls to each different html result in the * {@link #EXTRA_VOICE_SEARCH_RESULT_HTML} list. */
public static final String EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS = "android.speech.extras.VOICE_SEARCH_RESULT_HTML_BASE_URLS";
The key to an extra ArrayList of Bundles that contains key/value pairs. All the values and the keys are Strings. Each key/value pair represents an extra HTTP header. The keys can't be the standard HTTP headers as they are set by the WebView. A list of size 1 may be provided to apply the same HTTP headers to all web results. A list of the same size as EXTRA_VOICE_SEARCH_RESULT_STRINGS may be provided to apply different HTTP headers to each different web result in the list. These headers will only be used in the case that the url for a particular web result (from EXTRA_VOICE_SEARCH_RESULT_URLS) is loaded.
/** * The key to an extra {@link ArrayList} of {@link Bundle}s that contains key/value pairs. * All the values and the keys are {@link String}s. Each key/value pair represents an extra HTTP * header. The keys can't be the standard HTTP headers as they are set by the WebView. * * A list of size 1 may be provided to apply the same HTTP headers to all web results. A * list of the same size as {@link #EXTRA_VOICE_SEARCH_RESULT_STRINGS} may be provided to * apply different HTTP headers to each different web result in the list. These headers will * only be used in the case that the url for a particular web result (from * {@link #EXTRA_VOICE_SEARCH_RESULT_URLS}) is loaded. */
public static final String EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS = "android.speech.extras.EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS";
The scheme used currently for html content in EXTRA_VOICE_SEARCH_RESULT_HTML. Note that this should only be used in tandem with this particular extra; it should NOT be used for generic URIs such as those found in the data field of an Intent.
/** * The scheme used currently for html content in {@link #EXTRA_VOICE_SEARCH_RESULT_HTML}. * Note that this should only be used in tandem with this particular extra; it should * NOT be used for generic URIs such as those found in the data field of an Intent. */
public static final String URI_SCHEME_INLINE = "inline"; }