我點擊一個按鈕時有一個語音識別器意圖。語音識別器意圖不回收OnActivityResult中的數據
voiceSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try{
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, REQUEST_CODE);
}
catch (ActivityNotFoundException e) {
Log.v("Speech", "Could not find any Speech Recognition Actions");
}
}
});
在活動結果我作爲
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
System.out.println("Request code++++++++++++++++++++++++++++"+requestCode);
System.out.println("Result Code+++++++++++++++++++++++++++++"+resultCode);
System.out.println("Data++++++++++++++++++++++++++++++++++++"+data);
System.out.println("Language"+data.getStringExtra(RecognizerIntent.EXTRA_LANGUAGE));
System.out.println("data.getDataString()"+data.getDataString());
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
if (data != null && data.getData() != null) {
String searchKey = data.getData().toString();
System.out.println("Search Key++++++++++++++++++++++++"+searchKey);
searchEditText.setText(searchKey);
webView.loadUrl(url+"searchKey");
}
}
}
我得到的輸出是,當我在onActivityResult
我打印的代碼是
請求代碼,我得到的1
結果代碼我得到-1
我得到的數據Intent { (has extras) }
語言data.getStringExtra(RecognizerIntent.EXTRA_LANGUAGE)
as null
。
Data.getDataString()
as null
。
有人能讓我知道我可能會在代碼中犯什麼錯。
謝謝。
你的變量'REQUEST_CODE'等於'1',對吧?否則,這是另一個活動的結果。 – Hbcdev
@Hbcdev是的,我的REQUEST_CODE等於'1'。 – Mukunda