134 lines
7.0 KiB
Java
134 lines
7.0 KiB
Java
/*
|
|
* 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 {@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
|
|
* {@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 {@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 {@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 {@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 {@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 {@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 {@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";
|
|
}
|