0

私はSpeechRecognizerListnerの活動に取り組んでいます。

WebviewボタンをクリックしてJavaScriptをスローしてインテント(startListning(intent))をトリガーしています

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);
   }

私のSpeechRecognizerListnerは

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(Bundle results)の結果文字列をjavascriptメソッドに渡したいことです。

誰かが私がこれを達成するのを手伝ってください。

4

1 に答える 1

0

変数をJavaScript関数に渡す簡単な方法はありません...しかし、クラスJavaScriptInterfaceを作成し、準備ができたら文字列を取得するようにJavaScriptに信号を送ることができます。

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

JavaScriptInterfaceクラスで呼び出す関数をリストします。次に、JavaScriptで...

Interface.getStringResult();

インターフェイスがJavaScriptに存在するかどうかを確認する関数を作成することもできます。

function runningInAndroidApp() {
    if (typeof Interface != 'undefined') {
        return true;
    }
    return false;
}
于 2012-06-19T17:41:17.600 に答える