Merge "Make the corresponding frameworks change to add VoiceRecognitionService to the list of SDK sample apps."
diff --git a/Android.mk b/Android.mk
index 4ecf5bd..0911712 100644
--- a/Android.mk
+++ b/Android.mk
@@ -409,7 +409,9 @@
-samplecode $(sample_dir)/Wiktionary \
resources/samples/Wiktionary "Wiktionary" \
-samplecode $(sample_dir)/WiktionarySimple \
- resources/samples/WiktionarySimple "Wiktionary (Simplified)"
+ resources/samples/WiktionarySimple "Wiktionary (Simplified)" \
+ -samplecode $(sample_dir)/VoiceRecognitionService \
+ resources/samples/VoiceRecognitionService "Voice Recognition Service"
## SDK version identifiers used in the published docs
# major[.minor] version for current SDK. (full releases only)
diff --git a/common/java/com/android/common/speech/Recognition.java b/common/java/com/android/common/speech/Recognition.java
new file mode 100644
index 0000000..c647687
--- /dev/null
+++ b/common/java/com/android/common/speech/Recognition.java
@@ -0,0 +1,38 @@
+/*
+ * 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 com.android.common.speech;
+
+import android.app.SearchDialog;
+
+/**
+ * Utilities for voice recognition implementations.
+ *
+ * @see android.app.RecognitionService
+ */
+public class Recognition {
+
+ /**
+ * The extra key used in an intent to the speech recognizer for voice search. Not
+ * generally to be used by developers. The {@link SearchDialog} uses this, for example,
+ * to set a calling package for identification by a voice search API. If this extra
+ * is set by anyone but the system process, it should be overridden by the voice search
+ * implementation.
+ */
+ public final static String EXTRA_CALLING_PACKAGE = "calling_package";
+
+ private Recognition() { } // don't instantiate
+}
diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java
index 63e95c0..e4c1ba6 100644
--- a/core/java/android/app/SearchDialog.java
+++ b/core/java/android/app/SearchDialog.java
@@ -68,6 +68,7 @@
import android.widget.AdapterView.OnItemSelectedListener;
import com.android.common.Patterns;
+import com.android.common.speech.Recognition;
import java.util.ArrayList;
import java.util.WeakHashMap;
@@ -94,9 +95,6 @@
private static final String INSTANCE_KEY_PREVIOUS_COMPONENTS = "sPrev";
private static final String INSTANCE_KEY_USER_QUERY = "uQry";
- // The extra key used in an intent to the speech recognizer for in-app voice search.
- private static final String EXTRA_CALLING_PACKAGE = "calling_package";
-
// The string used for privateImeOptions to identify to the IME that it should not show
// a microphone button since one already exists in the search dialog.
private static final String IME_OPTION_NO_MICROPHONE = "nm";
@@ -948,7 +946,7 @@
voiceIntent.putExtra(RecognizerIntent.EXTRA_PROMPT, prompt);
voiceIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, language);
voiceIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, maxResults);
- voiceIntent.putExtra(EXTRA_CALLING_PACKAGE,
+ voiceIntent.putExtra(Recognition.EXTRA_CALLING_PACKAGE,
searchActivity == null ? null : searchActivity.toShortString());
// Add the values that configure forwarding the results