如何通过"由Vlingo支持的三星"以编程方式覆盖"Google Voice Search"?

Ete*_*ner 12 android speech-recognition android-4.2-jelly-bean

有些设备(如三星Galaxy S3)预先安装了由Vlingo驱动的三星,而不是谷歌语音搜索.

在我的应用程序中,我想以编程方式覆盖要使用的语音识别引擎,以便我的应用程序始终使用Google语音搜索.

所以我的问题是:

  1. 有没有办法说明安装了哪些语音识别引擎?(如果是这样,怎么样?)
  2. 有没有办法告诉用户设置中选择了哪个语音识别引擎?(如果是这样,怎么样?)
  3. 是否有一种编程方式来覆盖用户的选择,以便我的应用程序始终调用Google语音搜索?(如果是这样,怎么样?)

帮助将不胜感激

Kaa*_*rel 5

你所有问题的答案都是"是".

createSpeechRecognizer可以给出要使用的识别器的包名称.因此,如果您知道包名称,则可以覆盖默认值.

要检测可用服务,请使用:

List<ResolveInfo> services =
    getPackageManager().queryIntentServices(
        new Intent(RecognitionService.SERVICE_INTERFACE), 0);
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅Babble的源代码.我不知道这是否是最好的方法(欢迎任何反馈),但它已在我的设备上工作.(Babble通常假设Android 4+,但语音识别器检测部分也可能适用于早期版本.)