diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 5734cbd8d84f1..8d12f3d3da769 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -353,6 +353,7 @@ package android { field public static final int config_systemContacts = 17039403; // 0x104002b field public static final int config_systemGallery = 17039399; // 0x1040027 field public static final int config_systemShell = 17039402; // 0x104002a + field public static final int config_systemSpeechRecognizer = 17039406; // 0x104002e } public static final class R.style { diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 592a3a1ff083f..12cb3980f785c 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -1953,6 +1953,8 @@ com.android.shell com.android.contacts + + diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index 9b2573f3d62f8..2004d0a8d15c8 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -3166,6 +3166,8 @@ + + diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java index 8628f89a49c1c..dce63ebb08892 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java @@ -76,6 +76,7 @@ import android.util.ArraySet; import android.util.Log; import android.util.Slog; +import com.android.internal.R; import com.android.internal.annotations.GuardedBy; import com.android.internal.app.IHotwordRecognitionStatusCallback; import com.android.internal.app.IVoiceActionCheckCallback; @@ -643,6 +644,10 @@ public class VoiceInteractionManagerService extends SystemService { } ComponentName findAvailRecognizer(String prefPackage, int userHandle) { + if (prefPackage == null) { + prefPackage = getDefaultRecognizer(); + } + List available = mContext.getPackageManager().queryIntentServicesAsUser( new Intent(RecognitionService.SERVICE_INTERFACE), @@ -670,6 +675,12 @@ public class VoiceInteractionManagerService extends SystemService { } } + @Nullable + public String getDefaultRecognizer() { + String recognizer = mContext.getString(R.string.config_systemSpeechRecognizer); + return TextUtils.isEmpty(recognizer) ? null : recognizer; + } + ComponentName getCurRecognizer(int userHandle) { String curRecognizer = Settings.Secure.getStringForUser( mContext.getContentResolver(),