title: Voice to text on Android in offline mode
body: <p>Is there anyway in which I can use the Voice to Text feature of Android in offline mode.</p>
  
  <p>In the given example VoiceRecognition.java, it starts and activity with the intent RecognizerIntent.ACTION_RECOGNIZE_SPEECH.</p>
  
  <p>Does it mean that any other apk needs to be installed before hand for this to work or do I need to write my own application to launch on this intent.</p>
  
  <p>I have been searching for this for a long time but is getting confused...</p>
  
  <p>Here is the code I used..</p>
  
  <pre><code>private static final int VOICE_RECOGNITION_REQUEST_CODE = 1234;
  
  private ListView mList;
  
  /**
   * Called with the activity is first created.
   */
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  
      // Inflate our UI from its XML layout description.
      setContentView(R.layout.voice_recognition);
  
      // Get display items for later interaction
      Button speakButton = (Button) findViewById(R.id.btn_speak);
  
      mList = (ListView) findViewById(R.id.list);
  
      // Check to see if a recognition activity is present
      PackageManager pm = getPackageManager();
      List&lt;ResolveInfo&gt; activities = pm.queryIntentActivities(
              new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
      if (activities.size() != 0) {
          speakButton.setOnClickListener(this);
      } else {
          speakButton.setEnabled(false);
          speakButton.setText("Recognizer not present");
      }
  }
  
  /**
   * Handle the click on the start recognition button.
   */
  public void onClick(View v) {
      if (v.getId() == R.id.btn_speak) {
          startVoiceRecognitionActivity();
      }
  }
  
  /**
   * Fire an intent to start the speech recognition activity.
   */
  private void startVoiceRecognitionActivity() {
      Intent 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");
      startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
  }
  
  /**
   * Handle the results from the recognition activity.
   */
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      if (requestCode == VOICE_RECOGNITION_REQUEST_CODE &amp;&amp; resultCode == RESULT_OK) {
          // Fill the list view with the strings the recognizer thought it could have heard
          ArrayList&lt;String&gt; matches = data.getStringArrayListExtra(
                  RecognizerIntent.EXTRA_RESULTS);
          mList.setAdapter(new ArrayAdapter&lt;String&gt;(this, android.R.layout.simple_list_item_1,
                  matches));
      }
  
      super.onActivityResult(requestCode, resultCode, data);
  }
  </code></pre>
  
  <p>On running this code it gives Recognizer not present which means no such activity is present. How to resolve this?</p>