您的位置:首页 > 移动开发 > Android开发

如何获取所有安装的Android应用并且可以运行其中一个?

2016-10-18 21:37 1001 查看
翻译自http://stackoverflow.com/questions/2695746/how-to-get-a-list-of-installed-android-applications-and-pick-one-to-run

1 问题

Q:我曾试过

Intent intent = new Intent(ACTION_MAIN);
intent.addCategory(CATEGORY_LAUNCHER);


但这个是展示预装的应用或者是可以以
ACTION_MAIN
Intent类型运行的应用。

我也知道我可以使用PackageManager去获得所有安装的用用,但应该怎么去运行一个指定的应用呢?

2 回答1

下面的代码可以获取所有安装的应用

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List pkgAppsList = context.getPackageManager().queryIntentActivities( mainIntent, 0);


你会在ResolveInfo 中得到所有所需的数据去开启一个应用。

3 回答2

使用packageManager

final PackageManager pm = getPackageManager();
//获取所有安装的应用
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));
}
// getLaunchIntentForPackage 返回一个intent,你可以使用startActivity()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐