如何让js函数SpeechRecognizer听者的反应?(How to get SpeechRec

2019-09-18 06:51发布

我的工作SpeechRecognizer听者活动。

我触发意图从网页视图按钮点击(startListning(意向))抛出的javascript

act.startFun();

而startFun()方法是在我MainActivity.java文件中声明

public void startFun(){
        Log.d(TAG,"ONCLICK");
        Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);         
 intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
         intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,"voice.recognition.test");
         intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,5); 
         sr.startListening(intent);
   }

我SpeechRecognizer听者像

class listner implements RecognitionListener{  
            public void onResults(Bundle results) {
            end=1;
            Log.d(TAG, "onResults");
        }

        public void onRmsChanged(float rmsdB) {
            Log.d(TAG, "onRmsChanged");
        }
    }

我的要求是我想通过onResults(捆绑的结果)的结果字符串到我的JavaScript方法。

请有人帮助我实现这一目标。

Answer 1:

有没有简单的方法来一个变量传递给JavaScript函数...但你可以创建一个类JavaScriptInterface和信号JavaScript的,当你拥有它准备好字符串。

webview.addJavascriptInterface(new JavaScriptInterface(),"Interface");

列出你想在JavaScriptInterface类调用的函数。 然后,在JavaScript ...

Interface.getStringResult();

你也可以创建一个函数来检查,看看是否在JavaScript中存在的界面:

function runningInAndroidApp() {
    if (typeof Interface != 'undefined') {
        return true;
    }
    return false;
}


文章来源: How to get SpeechRecognizer listner response in js function?