我想知道我需要编写什么代码来返回一组不是系统应用程序的应用程序。
public static List<?> getInstalledApplication(Context c) {
return c.getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA);
}
这是返回所有内容的方法的代码。我只想显示用户可以启动的应用程序。我怎样才能做到这一点?
我想知道我需要编写什么代码来返回一组不是系统应用程序的应用程序。
public static List<?> getInstalledApplication(Context c) {
return c.getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA);
}
这是返回所有内容的方法的代码。我只想显示用户可以启动的应用程序。我怎样才能做到这一点?
查看@Wand Maker 对这个问题的评论:How to get installed applications in Android and no system apps?
我认为您需要使用 PackageManager 来找出所有支持意图过滤器的应用程序,其中包含动作“android.intent.action.MAIN”和类别“android.intent.category.LAUNCHER”——Wand Maker 7 月 6 日 15:23
您可以通过使用 PackageManager.queryIntentActivities ( http://developer.android.com/reference/android/content/pm/PackageManager.html#queryIntentActivities(android.content.Intent , int))来做到这一点
例如
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> activities = getPackageManager().queryIntentActivities(intent, 0);