#android #kotlin #android-package-managers
#Android #котлин #android-менеджеры пакетов
Вопрос:
Когда я открываю главное меню Android на своем смартфоне Android, я получаю набор приложений, таких как Youtube, калькулятор, почтовые клиенты и т. Д. Там не видно никаких системных элементов или каких-либо библиотек.
Чтобы получить эти приложения программно, я делаю:
PackageManager.getInstalledApplications(flag: Int)
где я получаю список ApplicationInfo
, который также содержит намного больше, чем упомянутые установленные стандартные приложения. Какой флаг мне нужно установить, чтобы получать только те же приложения, которые я вижу, когда провожу пальцем вверх по своему смартфону?
Ответ №1:
val mainIntent = Intent(Intent.ACTION_MAIN, null) mainIntent.addCategory(Intent.CATEGORY_LAUNCHER) val appList = context.getPackageManager().queryIntentActivities( mainIntent, 0)
Вы можете попробовать это, чтобы получить все пользовательские приложения (и те, которые показывает ваш лаунчер)
Однако вам может потребоваться добавить дополнительные разрешения в свой манифест выше Android 10
Правка: Если вы хотите, чтобы в вашем списке был ApplicationInfo, а не ResolveInfo, вы можете получить его следующим образом:
appList[your_index].activityInfo.applicationInfo