我的應用程序中有一個語音識別部分來捕捉用戶的語音輸入。如何檢測話筒是否存在於android中?
這是我做的
Intent voiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
startActivityForResult(voiceIntent, REQUEST_CODE);
也能正常工作的大部分設備,但現在由於平板電腦越來越流行,其中一些沒有麥克風,它拋出一個錯誤
W/dalvikvm(408):線程ID = 1:螺紋 與未捕獲的異常 (組= 0x40015560)E/AndroidRuntime( 408)退出:致命異常:主 E/AndroidRuntime(408): android.c ontent.ActivityNotFoundException: 無活動處理意圖{ ACT = android.speech.action.RECOGNIZE_SPEECH (具有額外)} E/AndroidRuntime( 408):在 android.app.Instrumentation.checkStartActivityResult(Instrumentation.java: 1408) .....
所以我想在我讓用戶訪問語音輸入功能之前檢測麥克風是否存在。如何檢測設備上是否有麥克風。
謝謝。
你找到解決辦法嗎? – blackfyre 2012-08-30 07:37:49
爲什麼不簡單地捕捉異常?當我嘗試打開條形碼掃描儀時,我在我的一個應用程序中執行此操作。這工作正常。 – 2013-01-21 17:43:30
捕捉異常解決了防止應用程序崩潰的問題,如果我們捕捉到正確的異常。但是,如果你能以正確的方式解決這個問題,爲什麼要抓住例外呢這也意味着我只能捕捉那些由於麥克風不存在或者語音意圖不存在而導致的異常。如果因爲其他原因而崩潰又會如何呢?例外情況也會如此呢?通過做出正確的檢查,我可以在必要時採取替代措施。話雖如此,如果你所做的工作對你來說很完美,你可能不需要改變它:)。 – achie 2013-01-21 18:20:47