今週初めにこれと似たような質問をしましたが、インストールされているすべてのアプリケーションのリストを取得し、その中から実行するアプリケーションを選択する方法がまだわかりません。
私はもう試した:
Intent intent = new Intent(ACTION_MAIN);
intent.addCategory(CATEGORY_LAUNCHER);
これには、プリインストールされているアプリケーション、または Intent タイプを実行できるアプリケーションのみが表示されますACTION_MAIN
。
PackageManager
インストールされているすべてのアプリケーションを取得するために使用できることも知っていますが、これを使用して特定のアプリケーションを実行するにはどうすればよいでしょうか?
ベストアンサー1
よりクリーンな方法は、PackageManager
final PackageManager pm = getPackageManager();
//get a list of installed apps.
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
Log.d(TAG, "Installed package :" + packageInfo.packageName);
Log.d(TAG, "Source dir : " + packageInfo.sourceDir);
Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName));
}
// the getLaunchIntentForPackage returns an intent that you can use with startActivity()
詳細はこちらhttp://qtcstation.com/2011/02/how-to-launch-another-app-from-your-app/