2012-01-31 15 views
2

次のコードを使用して、Google Voice Searchをアプリから起動しようとしています。 Google Voice SearchがダウンロードされたアプリケーションであるNexus Oneでは正常に動作しますが、Galaxy Nexusではプリインストールされている環境では動作しません。 getLaunchIntentForPackageに到達すると、結果はNULLになります。助けてもらえますか?アクティビティからプレインストールされたアプリを起動する(Google Voice Search)Android

Intent i = new Intent(Intent.ACTION_MAIN); 
    PackageManager manager = getPackageManager(); 
    try { 
     i = manager.getLaunchIntentForPackage("com.google.android.voicesearch"); 
    } catch (NameNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    i.addCategory(Intent.CATEGORY_LAUNCHER); 
    startActivity(i); 

答えて

5

全く同じ問題が発生しました。これは、GoogleがICSの音声コンポーネントをパッケージ化した方法によって引き起こされたようです。もうスタンドアロンアプリではありません。一般的な検索アプリを使用して検索バーに統合されています。

修正は本当に簡単です:

Intent intent = new Intent(RecognizerIntent.ACTION_WEB_SEARCH); 
startActivity(intent); 

私は、一般的な音声認識の詳細です。このチュートリアルをこれを見つけた: http://www.jameselsey.co.uk/blogs/techblog/android-how-to-implement-voice-recognition-a-nice-easy-tutorial/

音声認識がインストールされていることを確認するために、そこにいくつかのコードがあります:

PackageManager pm = getPackageManager(); 
List<ResolveInfo> activities = pm.queryIntentActivities(
    new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0); 
    if (activities.size() == 0) 
    { 
     speakButton.setEnabled(false); 
     speakButton.setText("Recognizer not present"); 
    } 
関連する問題