Mega Code Archive

 
Categories / Android / Core Class
 

Voice recognition demo

package app.test; import java.util.ArrayList; import android.app.Activity; import android.app.AlertDialog; import android.content.ActivityNotFoundException; import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.speech.RecognizerIntent; import android.widget.TextView; import android.widget.Toast; public class Test extends Activity {     private static final int REQUEST_RECOGNIZE = 100;     TextView tv;     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         tv = new TextView(this);         setContentView(tv);                  Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);         intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);         intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Tell Me Your Name");         try {             startActivityForResult(intent, REQUEST_RECOGNIZE);         } catch (ActivityNotFoundException e) {             AlertDialog.Builder builder = new AlertDialog.Builder(this);             builder.setTitle("Not Available");             builder.setMessage("No recognition software installed.Download one?");             builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {                 @Override                 public void onClick(DialogInterface dialog, int which) {                     Intent marketIntent = new Intent(Intent.ACTION_VIEW);                     marketIntent.setData(Uri.parse("market://details?id=com.google.android.voicesearch"));                 }             });             builder.setNegativeButton("No", null);             builder.create().show();         }     }         @Override     protected void onActivityResult(int requestCode, int resultCode, Intent data) {         if(requestCode == REQUEST_RECOGNIZE && resultCode == Activity.RESULT_OK) {             ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);             StringBuilder sb = new StringBuilder();             for(String piece : matches) {                 sb.append(piece);                 sb.append('\n');             }             tv.setText(sb.toString());         } else {             Toast.makeText(this, "Operation Canceled", Toast.LENGTH_SHORT).show();         }     } }