web-dev-qa-db-ja.com

ResolveInfoからインテントを開始する方法

私はAndroid用のカスタムランチャーを作成しようとしています。また、別のアプリケーションフォームを起動する方法を見つけようとしています。私はそれを行う方法が意図であると考えました、そして私はそれに関する投稿をここで見つけました:

自分の(意図)から別のアプリケーションを開く

でも答えはよくわかりません!誰かが私に、単一のResolveInfoからそのResolveInfoで表されるアプリを起動するための簡潔なスニペットまたは一連の手順を教えてもらえますか?

25
Pete.Mertz

ResolveInfoという名前のlaunchableが与えられた場合:

ActivityInfo activity=launchable.activityInfo;
ComponentName name=new ComponentName(activity.applicationInfo.packageName,
                                     activity.name);
Intent i=new Intent(Intent.ACTION_MAIN);

i.addCategory(Intent.CATEGORY_LAUNCHER);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
            Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
i.setComponent(name);

startActivity(i);

https://github.com/commonsguy/cw-omnibus/tree/master/Introspection/Launchalot から)

47
CommonsWare

この方法で新しいインテントを作成します。

    Intent intent = new Intent();
    intent.setClassName(resolveInfo.activityInfo.applicationInfo.packageName,
            resolveInfo.activityInfo.name);
    startActivity(intent);
20
Daniel De León