From 1e9b9835c036793dd811e1815de9fd1281874376 Mon Sep 17 00:00:00 2001 From: c00lerxo Date: Thu, 24 Jan 2019 13:17:44 +0100 Subject: [PATCH] Add speech recognition feature and mockup UI --- .idea/misc.xml | 2 +- app/src/main/AndroidManifest.xml | 9 ++++ .../example/se/catornot2/MainActivity.java | 43 +++++++++++++++++++ app/src/main/res/layout/activity_main.xml | 13 +++--- app/src/main/res/values/strings.xml | 1 + 5 files changed, 60 insertions(+), 8 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index e0d5b93..b0c7b20 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -29,7 +29,7 @@ - + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4d779e2..72ac52a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,14 @@ + + + + + + diff --git a/app/src/main/java/com/example/se/catornot2/MainActivity.java b/app/src/main/java/com/example/se/catornot2/MainActivity.java index 0a7d847..e986535 100644 --- a/app/src/main/java/com/example/se/catornot2/MainActivity.java +++ b/app/src/main/java/com/example/se/catornot2/MainActivity.java @@ -1,13 +1,56 @@ package com.example.se.catornot2; +import android.content.Intent; +import android.speech.RecognizerIntent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.view.View; + +import java.util.List; public class MainActivity extends AppCompatActivity { + private static final int SPEECH_REQUEST_CODE = 0; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } + + // Fires, when speechButton is clicked + public void handleSpeechButtonClick(View target) { + displaySpeechRecognizer(); + } + + // Create an intent that can start the Speech Recognizer activity + private void displaySpeechRecognizer() { + Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); + intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, + "en-US"); + // Start the activity, the intent will be populated with the speech text + startActivityForResult(intent, SPEECH_REQUEST_CODE); + } + + // This callback is invoked when the Speech Recognizer returns. + // This is where you process the intent and extract the speech text from the intent. + @Override + protected void onActivityResult(int requestCode, int resultCode, + Intent data) { + if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK) { + List results = data.getStringArrayListExtra( + RecognizerIntent.EXTRA_RESULTS); + String spokenText = results.get(0); + processVoiceCommand(spokenText); + } + super.onActivityResult(requestCode, resultCode, data); + } + + private void processVoiceCommand(String spokenText) { + if (spokenText.equals("take photo") || spokenText.equals("photo")) { + // sound of taking photo + // say the result + System.out.println("Good!"); + } + } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 84f1951..e0de269 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,13 +6,12 @@ android:layout_height="match_parent" tools:context=".MainActivity"> - - + android:onClick="handleSpeechButtonClick" + android:text="@string/speech_button" + tools:layout_editor_absoluteX="147dp" + tools:layout_editor_absoluteY="230dp" /> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9acc870..d8be0a1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,4 @@ Cat or Not 2 + Click me!