Hallo,
ich versuche momentan eine Spracheingabe über die Google Spracherkennung einer App beizufügen. Als Vorlage habe ich dieses Youtube Tutorial der Galileo Press genutzt: https://www.youtube.com/watch?v=EsvWVSMnzHA
Zunächst möchte ich nur die Spracheingabe aufrufen, doch da tritt schon ein Problem auf. Durch den Klick auf einen Button der mit der Funktion "onClick" verknüpft ist, soll die Spracheingabe aufgerufen werden:
Die Klasse Dictate in der selbst erstellten Bibliothek "fragOleLibrary" stellt die Methode recognize() zur Verfügung. Die Bibliothek wird auch von dem Projekt FragOle benutzt und da die App recognize und Dictate nicht erkennen wollte, habe ich über Build path den Zugang gewährleistet:
Nun habe ich unter anderem folgende Probleme: die Console sagt Could not find FragOleLibrary.apk. Das Log Cat teilt mir außerdem mit, dass es eine IllegalStateException gibt: Could not execute method of the activity, sowie eine ActivityNotFoundException: No activity found to handle intent {act=android.speech.action.RECOGNIZE_SPEECH (has extras) }
Ich benutze fürs Debugging ein Samsung Galaxy Note Tablet, falls das von Interesse sein sollte, dass mit dem Internet verbunden ist, um die Kommunikation mit den Google Servern zu ermöglichen. Aber ich stehe gerade ein Bisschen auf dem Schlauch, weiß jemand Rat?
ich versuche momentan eine Spracheingabe über die Google Spracherkennung einer App beizufügen. Als Vorlage habe ich dieses Youtube Tutorial der Galileo Press genutzt: https://www.youtube.com/watch?v=EsvWVSMnzHA
Zunächst möchte ich nur die Spracheingabe aufrufen, doch da tritt schon ein Problem auf. Durch den Klick auf einen Button der mit der Funktion "onClick" verknüpft ist, soll die Spracheingabe aufgerufen werden:
Code:
package com.androidProject2.fragOle; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import com.androidProject.fragOle.Speech.Dictate; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View view){ Dictate.recognize(this); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == Dictate.SPEECH_RECOGNIZED){ if (data != null) { System.out.println("..."); } } } }
Code:
package com.androidProject.fragOle.Speech; import android.app.Activity; import android.content.Intent; import android.speech.RecognizerIntent; public class Dictate { static public final int SPEECH_RECOGNIZED = 1; static public void recognize(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); } }
Ich benutze fürs Debugging ein Samsung Galaxy Note Tablet, falls das von Interesse sein sollte, dass mit dem Internet verbunden ist, um die Kommunikation mit den Google Servern zu ermöglichen. Aber ich stehe gerade ein Bisschen auf dem Schlauch, weiß jemand Rat?
Comment