Как отсортировать список пакетов, как лаунчере?

Нужно вывести список пакетов, но только те, которые доступны пользователю.

Код:
val packages = packageManager.getInstalledPackages(PackageManager.GET_META_DATA)
    for (pack in packages) if (pack.applicationInfo.enabled) 
        Log.d("Attempt", pack.packageName)
}


Помогите пожалуйста!
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
@arturars Автор вопроса
Нашел ответ! Нейроночка, миленькая помогла). Существует соответственный метод для фильтрации

Метод для получения списка и фильтрации:
fun getPackages(packageManager: PackageManager) {
    // Получение списка всех установленных пакетов
    val allPackages = packageManager.getInstalledPackages(PackageManager.GET_META_DATA)

    // Фильтрация списка пакетов
    val filteredPackages = allPackages.filter { packageInfo ->
        packageManager.getLaunchIntentForPackage(packageInfo.packageName) != null
    }

    // Отображение списка пакетов
    for (packageInfo in filteredPackages) {
        Log.d("Attempt", "Название пакета: ${packageInfo.packageName}")
    }
    Log.d("Attempt", filteredPackages.size.toString())
}


Он мне вернул 35 приложений, которые можно открыть. На рабочем столе у меня 32.
Надеюсь кому то пригодится при создании лаунчера.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы