[英]Is Android speech recognition service busy?
我從我的應用程序中使用Android語音識別服務。
事實證明,當兩個客戶端同時嘗試發送請求時(例如,用戶從應用程序啟動一個語音搜索,然后在搜索仍處於活動狀態時切換到另一個應用程序,並啟動另一個搜索),該服務將停止工作。
有沒有辦法確定正在進行語音識別會話,以便我可以拒絕啟動另一個?
你可能應該在onError處理程序中捕獲ERROR_RECOGNIZER_BUSY:
@Override
public void onError(int error) {
switch (error) {
case SpeechRecognizer.ERROR_RECOGNIZER_BUSY:
// do something reasonable
…
}
}
你最有可能(只有?)在開始收聽的請求上接收它; 不幸的是,我沒有意識到沒有嘗試測試這種情況的任何方法(例如我認為你不能預先檢測另一個進程的監聽器正在激活以移除麥克風按鈕)
(在停止收聽時,如果你試圖以某種方式殺死另一個進程的監聽器,你只會得到這個錯誤。)
我收到此錯誤(ERROR_RECOGNIZER_BUSY)並發現我的意圖設置中缺少包。 所以我剛添加了這一行,現在可以正常工作:
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
...
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, context.getPackageName());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.