私が知っている限り、Googleはインストールされたアプリケーションのリストを単純に反復し、という完全一致が見つかると、対応するアプリケーションを開きます。これをテストする
、これはあなたのアプリケーションを開いた場合、それは単にあなたのアプリケーション名の音声学のケースである、またはGoogleがそれの発音をどのように解釈するか、次のIntent
final String PACKAGE_NAME_GOOGLE_NOW = "com.google.android.googlequicksearchbox";
final String GOOGLE_NOW_SEARCH_ACTIVITY = ".SearchActivity";
final String APP_NAME = "Open " +getString(R.string.app_name);
final Intent startMyAppIntent = new Intent(Intent.ACTION_WEB_SEARCH);
startMyAppIntent.setComponent(new ComponentName(PACKAGE_NAME_GOOGLE_NOW,
PACKAGE_NAME_GOOGLE_NOW + GOOGLE_NOW_SEARCH_ACTIVITY));
startMyAppIntent.putExtra(SearchManager.QUERY, APP_NAME);
startMyAppIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
startActivity(startMyAppIntent);
} catch (final ActivityNotFoundException e) {
e.printStackTrace();
}
を使用しています。
アプリケーションのマニフェスト(または他のグローバルに利用可能な設定ファイル)に「音声ラベル」を追加する必要があると思うので、一意の名前が十分ではない場合はGoogleがアプリケーションを開くことができます音声検索結果を生成する。
これは、あなたのアプリケーションを開き、次のようにあなたが正しくマニフェストでアプリケーション名を定義していることを確認していない場合:あなたは `開いclock`または別の発音に聞こえるが、現在インストールされていると言うとき
<application
android:label="@string/app_name"
は、それが動作しません応用? – brandall
はい。他のほとんどの一般的なアプリケーションが動作します。何人かは、私がそれを可能にするために何らかのコーディングが必要と思うようにしています。 –
私はアプリケーション名の前に 'open'を含めるように私の答えを編集しました。私はあなたが間違いを見つけたと思う! – brandall