2013-07-11 5 views
0

Я хочу знать, какой код мне нужен для записи, чтобы вернуть набор приложений, которые не являются системными приложениями.Возврат набора установленных приложений без системных приложений

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

} 

Это код метода, который возвращает все. Я хочу показать только приложения, которые могут запускаться пользователем. Как я могу это сделать?

ответ

1

Заканчивать комментарий от @Wand Maker для этого вопроса: How to get installed applications in Android and no system apps?

Я думаю, вам нужно использовать PackageManager, чтобы выяснить, все приложения, которые поддерживают намерения фильтр с действием «android.intent.action.MAIN» и категория "android.intent.category.LAUNCHER" - Wand Maker 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

Смежные вопросы