我創建了一個按鈕,點擊它時的活動,開始一個Intent如下推出語音輸入:如何覆蓋Android鍵盤上的語音輸入鍵?
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speak Now");
startActivityForResult(intent, SPEECH_REQUEST_CODE);
然後,我得到的結果,並在對話框中顯示它們,使用戶可以選擇最接近的匹配。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK && data != null) {
final ArrayList<String> list_voice_input = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
// I use this ArrayList to create a dialog.
}
super.onActivityResult(requestCode, resultCode, data);
}
所以活動的工作方式如下:單擊按鈕,說話,然後彈出一個對話框,列出最接近的匹配,你可以選擇一個。
我已經使用了一個按鈕來實現這一點。但Android的鍵盤已經內置了語音輸入。當我用它說話時,它會輸出我正在說的內容,並自動檢測最接近的匹配。
我需要什麼:
我希望使用默認的鍵盤,而不是一個按鈕,當檢測到用戶選擇的話語,而不是類型(文本字段),並顯示一個對話框與最接近的匹配的框。
關於如何做到這一點的任何想法?
編輯:
我的問題被標記爲重複的,但我沒有試圖擺脫當你記錄你的聲音自帶彈出對話框。我的問題是不同的。
當您鍵入文本時,在Android鍵盤中,已經有內置的語音輸入選項。你可以用它來說文字。所以,我的問題是,不是自動打印出最接近的匹配,而是可以向用戶顯示對話框中最接近匹配的列表,並讓他們選擇一個?
您想要檢測語音鍵是否被按下?所以當有人按下那個按鈕時,你可以做你的事情嗎? – Strider
@Strider不,我想知道如何繼續下去。我想獲得最接近的匹配列表,而不是直接獲取打印的口頭文本,這是默認情況下發生的情況。 – Kajal
@ kv.333然後你需要重寫這個鍵,並且創建一個你想要的方法。因爲我認爲你不能編輯它的當前方法。 – Strider