SpeechRecognizer,绑定识别服务失败
SpeechRecognizer, bind to recognition service failed
我在 android 上使用 SpeechRecognizer 来识别用户的声音。
它运行良好,直到卸载 Google 应用程序。
(https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox&hl=en)
我更新了 Google 应用程序,但出现 "bind to recognition service failed" 等错误。
我怎样才能使应用 运行 成功?
怎样才能正常使用SpeechRecognizer?
谢谢。
每次 Google 应用程序以某种方式更新时,语音识别器回调总是有问题。要么 Google 定期更改他们的超时条款,要么突然出现一些像你这样的奇怪问题。
您需要使您的代码动态化,即使在语音回调方法中出现错误,您也需要捕获该错误并尝试自动再次收听。这已在本 中进行了广泛讨论,并提供了大量答案供您根据需要检查和实施。
如果您不想要这个,您可以随时试用 DroidSpeech 库,它会在出现问题时处理这些语音错误问题,并为您提供连续的语音识别。
只需使用 Gradle 实现库并添加以下代码行。
DroidSpeech droidSpeech = new DroidSpeech(this, null);
droidSpeech.setOnDroidSpeechListener(this);
要开始收听用户调用以下代码,
droidSpeech.startDroidSpeechRecognition();
你会在监听器方法中得到语音结果,
@Override
public void onDroidSpeechFinalResult(String
finalSpeechResult, boolean droidSpeechWillListen)
{
}
我知道我回答这个问题有点晚了,但我已经为这个错误苦苦挣扎了一段时间。原来您需要激活 Google 的快速搜索框。所以我使用的解决方案是:我检查 SpeechRecognizer 是否可用(使用 isRecognitionAvailable(context)
)。如果 SpeechRecognizer 不可用,您可以像这样激活它:
if(!SpeechRecognizer.isRecognitionAvailable(mainActivity)){
String appPackageName = "com.google.android.googlequicksearchbox";
try {
mainActivity.startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("market://details?id=" + appPackageName)));
} catch (android.content.ActivityNotFoundException anfe) {
mainActivity.startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
}
}
更新清单
我正在使用 Algolia 的语音输入库,它无法在 Pixel 2 和 android 11 设备上进行语音输入。无法绑定语音识别服务的原因
为了解决这个问题,在清单文件中,将这个查询元素插入到您的开始标签下:
<queries>
<package android:name="com.google.android.googlequicksearchbox"/>
</queries>
我在 android 上使用 SpeechRecognizer 来识别用户的声音。 它运行良好,直到卸载 Google 应用程序。 (https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox&hl=en)
我更新了 Google 应用程序,但出现 "bind to recognition service failed" 等错误。 我怎样才能使应用 运行 成功?
怎样才能正常使用SpeechRecognizer?
谢谢。
每次 Google 应用程序以某种方式更新时,语音识别器回调总是有问题。要么 Google 定期更改他们的超时条款,要么突然出现一些像你这样的奇怪问题。
您需要使您的代码动态化,即使在语音回调方法中出现错误,您也需要捕获该错误并尝试自动再次收听。这已在本
如果您不想要这个,您可以随时试用 DroidSpeech 库,它会在出现问题时处理这些语音错误问题,并为您提供连续的语音识别。
只需使用 Gradle 实现库并添加以下代码行。
DroidSpeech droidSpeech = new DroidSpeech(this, null); droidSpeech.setOnDroidSpeechListener(this);
要开始收听用户调用以下代码,
droidSpeech.startDroidSpeechRecognition();
你会在监听器方法中得到语音结果,
@Override
public void onDroidSpeechFinalResult(String finalSpeechResult, boolean droidSpeechWillListen) {
}
我知道我回答这个问题有点晚了,但我已经为这个错误苦苦挣扎了一段时间。原来您需要激活 Google 的快速搜索框。所以我使用的解决方案是:我检查 SpeechRecognizer 是否可用(使用 isRecognitionAvailable(context)
)。如果 SpeechRecognizer 不可用,您可以像这样激活它:
if(!SpeechRecognizer.isRecognitionAvailable(mainActivity)){
String appPackageName = "com.google.android.googlequicksearchbox";
try {
mainActivity.startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("market://details?id=" + appPackageName)));
} catch (android.content.ActivityNotFoundException anfe) {
mainActivity.startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
}
}
更新清单
我正在使用 Algolia 的语音输入库,它无法在 Pixel 2 和 android 11 设备上进行语音输入。无法绑定语音识别服务的原因
为了解决这个问题,在清单文件中,将这个查询元素插入到您的开始标签下:
<queries>
<package android:name="com.google.android.googlequicksearchbox"/>
</queries>