Android Speech Recognition uses cloud technologies to recognize users' voice input, including voice control technologies. We will use the APIS provided by Google to implement this function. Feature: recognize the voice input by the user and print it on the list.
First, create the following activity and create a listview control under the button (The project identified by the back-and-forth explicit language ).
The Code is as follows:
Package COM. example. speechreg; import android. app. activity; import android. content. intent; import android. content. PM. packagemanager; // used to find the classes related to the local application software package import android. content. PM. resolveinfo; // import the information returned by the system intentfilter to Android. OS. bundle; import android. speech. recognizerintent; // audio recognition class import android. view. view; import android. view. view. onclicklistener; import android. widget. arrayadapter; // matching conversion class im stored in Arrays for the same data Port android. widget. button; import android. widget. listview; import Java. util. arraylist; import Java. util. list;/*** sample code that invokes the speech recognition intent API. */public class mainactivity extends activity implements onclicklistener {Private Static final int voice_recognition_request_code = 1234; // ID code required for the startactivityforresult operation private listview MList; @ override public void oncreate (Bundle savedinstancestate) {super. oncreate (savedinstancestate); setcontentview (R. layout. voice_recognition); button speakbutton = (button) findviewbyid (R. id. btn_speak); MList = (listview) findviewbyid (R. id. listview1); packagemanager PM = getpackagemanager (); List <resolveinfo> activities = PM. queryintentactivities (new intent (recognizerintent. action_recognize_speech), 0); // you can find If (activities. Size ()! = 0) {speakbutton. setonclicklistener (this); // if this activity exists} else {speakbutton. setenabled (false); speakbutton. settext ("recognizer not present"); // otherwise, modify the button display value and set it to not optional} public void onclick (view V) {// If (v. GETID () = R. id. btn_speak) {startvoicerecognitionactivity () ;}} private void startvoicerecognitionactivity () {intent = new intent (recognizerintent. Action_recognize_speech); intent. putextra (recognizerintent. extra_language_model, recognizerintent. language_model_free_form); intent. putextra (recognizerintent. extra_prompt, "Speech Recognition Demo"); // you can specify startactivityforresult (intent, voice_recognition_request_code) for the intent call of speech recognition ); start an activity call that requires a return value} @ override protected void onactivityresult (INT requestcode, int resultcode, intent data) {// This function is neither an interface nor an abstract function. Why override? If (requestcode = Response & resultcode = result_ OK) {// fill the list view with the strings the recognizer thought it // cocould have heard arraylist <string> matches = data. getstringarraylistextra (recognizerintent. extra_results); // parses the storage to identify the returned result MList. setadapter (New arrayadapter <string> (this, android. r. layout. simple_list_item_1, matches); // display the result in listview} super. onactivityresult (requestcode, resultcode, data );}}
The running result is as follows. It automatically calls the Google Speech Recognition service activity and returns the execution result of a specific activity.
Http://blog.csdn.net/comkingfly/article/details/7359987 ()