Guten Tag,
ich würde gerne die Spracherkennung von Android nutzen.
Dazu habe ich folgenden Code gemacht:
Wenn ich auf den Button klicke, kommt das Interface mit der Erkennung. Nachdem ich etwas gesagt habe, und das Gerät einen Ton von sich gibt, wird die App angehalten. Ich weiß leider nicht woran es liegt.
Was mache ich falsch? Die Berechtigung für Audioaufnahme hat die App.
ich würde gerne die Spracherkennung von Android nutzen.
Dazu habe ich folgenden Code gemacht:
Code:
package de.vollkanone.sprachhilfe;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
Button btn_go;
TextView tw;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_go = (Button) findViewById(R.id.btn_go);
tw = (TextView) findViewById(R.id.textView1);
btn_go.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
button("btn_go");
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void button(String btn) {
if(btn.equalsIgnoreCase("btn_go")) {
erkennen(this);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == SPEECH_RECOGNIZED) {
if(data != null) {
String[] result = data.getStringArrayExtra(RecognizerIntent.EXTRA_RESULTS);
tw.setText(result[0]);
}
}
}
static public final int SPEECH_RECOGNIZED = 1;
static public void erkennen(Activity activity) {
Intent intent = new Intent();
intent.setAction(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
activity.startActivityForResult(intent, SPEECH_RECOGNIZED);
}
}
Wenn ich auf den Button klicke, kommt das Interface mit der Erkennung. Nachdem ich etwas gesagt habe, und das Gerät einen Ton von sich gibt, wird die App angehalten. Ich weiß leider nicht woran es liegt.
Was mache ich falsch? Die Berechtigung für Audioaufnahme hat die App.