2013-07-11 48 views
0

我想知道需要编写哪些代码才能返回一组非应用程序的应用程序。返回一组未安装系统应用程序的应用程序

public static List<?> getInstalledApplication(Context c) { 
    return c.getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA); 

} 

这是返回所有内容的方法的代码。我只想显示用户可以启动的应用程序。我怎样才能做到这一点?

回答

1

退房从@Wand设备为这个问题的注释:How to get installed applications in Android and no system apps?

我认为你需要使用PackageManager找出所有支持的意图过滤器与行动“android.intent.action.MAIN”的应用类和 “android.intent.category.LAUNCHER” - 魔杖制作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); 
+0

我试过了,但它仍然没有帮助。你能准确地告诉如何根据上面的代码来写它吗? –

+0

它给了我有关getPackageManager()的错误,以及我应该返回什么来代替c? –

+0

我添加了一个例子。如何调用它getPackageManager()是上下文中的方法(http://developer.android.com/reference/android/content/Context.html#getPackageManager()),因此您可以从一个活动调用它 – Neiti01

相关问题