Могу ли я узнать, какие различия между getInstalledApplications
и getInstalledPackages
? В документации мало сказано.
GetInstalledApplications vs getInstalledPackages
Ответ 1
- PackageManager.getInstalledApplications(int flags) предоставит вам информацию о теге AndroidManifest
Application
и только о нем. Забудьте о действиях, получателях, услугах и продолжайте. - PackageManager.getInstalledPackages(int flags), с другой стороны, предоставит вам информацию о всех элементах AndroidManifest, такие как заявленные действия, услуги, приемники, метаданные
Оба метода предоставят информацию о любом приложении, независимо от того, имеют ли они или не объявили категорию намерений android.intent.category.LAUNCHER
в какой-либо деятельности.
Кроме того, оба метода будут извлекать один PackageInfo/ApplicationInfo для APK или, более конкретно, для имени пакета.
Ответ 2
Я думаю, что термин "Application
" относится к "Startable by user" /Появляется на панели запуска.
Это означает, что есть
a) Пакеты, которые не выполняются напрямую (например: "Содержимое DRM", "Настройка партнера Google" или "Обновление рынка" на моем sgs2).
b) Пакеты, которые предоставляют несколько Application
. Да, вы правильно это поняли. Один пакет может иметь несколько приложений - две записи запуска с иконками. Это возможно, если вы отметите два или более Деяний в вашем manifest.xml как android.intent.category.LAUNCHER
.