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

时间:2013-03-14 02:57:23

标签: android speech-recognition android-4.2-jelly-bean

某些设备(如Samsung Galaxy S3)已预先安装了Samsung powered by Vlingo而不是Google Voice Search

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

所以我的问题是:

  1. 有没有办法说明识别引擎已安装? (如果是这样,怎么样?)
  2. 有没有办法在用户设置中判断哪个语音识别引擎已选择? (如果是这样,怎么样?)
  3. 是否有以编程方式覆盖用户的选择,以便我的应用始终调用Google Voice Search? (如果是这样,怎么样?)
  4. 帮助将不胜感激

1 个答案:

答案 0 :(得分:5)

你所有问题的答案都是“是”。

可以为

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

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

List<ResolveInfo> services =
    getPackageManager().queryIntentServices(
        new Intent(RecognitionService.SERVICE_INTERFACE), 0);

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