RecognizerIntent.ACTION_RECOGNIZE_SPEECH not working in new android devices

Following is my code for voice recognition, its saying "Recogniser not present" for latest devices and tablets.Please help me how to fix it.

public void startMyVoice()
{   
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);   
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, sayClose);   
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");

try 
{
    startActivityForResult(intent, RESULT_SPEECH);      
} 
catch (ActivityNotFoundException a) 
{                   
    Toast.makeText(getApplicationContext(), "Recogniser not present", Toast.LENGTH_SHORT).show();      
}

}

From: Speech To Text Recognizer not found

I am not sure why the recognizer functionality is not available on all devices. Make sure you install and update the latest Google Voice Search for Android. I believe it installs the latest recognizer. See http://www.google.com/mobile/voice-actions/ it may be helpful.

As Dante Jiang said in Converting speech to text, According to this article, Google Voice Search is what you actually need.

The Android SDK makes it easy to integrate speech input directly into your own application—just copy and paste from this sample application to get started. Android is an open platform, so your application can potentially make use of any speech recognition service on the device that's registered to receive a RecognizerIntent. Google's Voice Search application, which is pre-installed on many Android devices, responds to a RecognizerIntent by displaying the "Speak now" dialog and streaming audio to Google's servers—the same servers used when a user taps the microphone button on the search widget or the voice-enabled keyboard. (You can check if Voice Search is installed in Settings ➝ Applications ➝ Manage applications.)


Add Below Code In Your AndroidManifest.xml File And It Will Work.

<queries>
   <intent>
     <action
        android:name="android.speech.RecognitionService" />
   </intent>
 </queries>