список установленных приложений андроид
Как получить список всех установленных приложений на Android
В этом уроке узнаем, как получить список всех установленных приложений на Android. Но начать я его хочу с небольшого обзора полезного приложения — оно называется Hexlock, и позволяет блокировать доступ к выбранным приложениям на вашем устройстве, с помощью пароля или графического ключа. Я уже слышу ваши неодобрительные возгласы, но не спешите уходить — по ходу обзора расскажу вам одну историю, с этим приложением связанную.
Исходный код примера из урока — под видео:
Итак, получение списка всех android приложений, установленных на устройстве полезен, когда вы разрабатываете приложение для обмена apk файлов с другими устройствами, или когда вы разрабатываете приложение app локер, наподобие того, который я показал вам в начале урока.
Взгляните на код простого приложения, которое позволяет это делать. Макет главного сласса содержит список ListView, второй макет содержит разметку элемента списка. Он используется адаптером для представления сведения о приложении. Он показывает значок приложения, название приложения и пакет приложения.
Класс MainActivity наследуется от ListActivity. Это главный класс, который используется для инициализации списка установленных приложений.
Класс PackageManager используется для получения информации о пакетах приложений, которые в настоящее время установлены на устройстве. Получить экземпляр класса PackageManager можно методом getPackageManager(). PackageManager предоставляет методы для выполнения запросов об установленных пакетах и связанных разрешениях, и т.д. В этом примере мы получаем список установленных приложений в Android.
Так как получение списка приложений от PackageManager является продолжительной задачей, это делается в AsyncTask.
Кроме того этот класс использует listadapter — объект пользовательского класса AppAdapter для ListView. Он унаследуется от ArrayAdapter.
Какие приложения установлены на моём смартфоне
Данная тема довольно популярна в сети Интернет, поэтому написать материал о приложениях, которые установлены на моём смартфоне, был просто обязан. Скажу сразу, в игры не играю, поэтому из установленных только PUBG. Для многих смартфон – это просто средство для совершения звонков. В моём случае речь идет о настоящем помощнике.
На столе передо мной постоянно лежат 2 смартфона – один на iOS, другой на Android. На обоих аппаратах установлены одинаковые приложения, за исключением лишь некоторых. Опыт использования в обоих случаях практически идентичный, искренне не понимаю людей, которые видят сильную разницу между iOS и Android при реальном использовании. 90% времени мы проводим в приложениях, которые никак не связаны с возможностями системы.
С каждым днём стараюсь всё меньше времени уделять телефону, потому что очень часто YouTube и соцсети не хотят отпускать.
Самое главное приложение – это, конечно, Twitter. В качестве автора материалов просто обязан постоянно проверять ленту Twitter в поисках горячих новостей. Twitter позволяет быть всегда в курсе всего нового.
Вторым не менее важным приложением для меня является YouTube. В последний раз бесполезное видео смотрел очень давно. Если это не кликбейт, то по названию и обложке уже бывает понятна вся бессмысленность времени, которое потрачу на видео. Обзоры техники также смотрю крайне редко и только иностранных блогеров, так как качество съемки и в целом качество подачи контента в их случае лучше.
В основном на YouTube люблю смотреть познавательные видео. Это может быть демонстрация робота Boston Dynamics, рассказ о чем-то интересном на TED или интервью Ирины Хакамады.
Еще одним важным приложением является, конечно же, Telegram. Сложно найти более удобного средства для общения с кем-либо. Стоит ли что-нибудь еще добавить? Стоит! У нас в Telegram есть интересный чат, подпишитесь.
Часто использую Feedly. Это RSS-лента с новостями иностранных ресурсов (в моём случае). Именно там узнаю много нового, с чем в дальнейшем делюсь с читателями.
Интересные темы для написания материалов можно найти еще и на Reddit. Это огромная площадка, где пользователь подписывается на различные каналы. Публикации на каналах может оставлять любой юзер.
Также для работы над собственными проектами использую Trello. Это удобный сервис для контроля задач по проектам. Книги читаю редко, в основном познавательные статьи в Интернете, на обычную художественную литературу попросту не хватает времени, поэтому читалки почти не использую.
А какими приложениями пользуетесь вы?
Новости, статьи и анонсы публикаций
Свободное общение и обсуждение материалов
За последние пару лет Google улучшила функции конфиденциальности на Android. Нынешняя версия Android 11 принесла несколько полезных обновлений. Например, автоматическую отмену неиспользуемых разрешений для приложений. А еще ограниченное хранилище и многое другое. Многие даже говорят, что это было самое большое и важное обновление безопасности среди всех версий ”зеленого робота”. Сейчас Google придерживается выбранного пути и продолжает работать в этом направлении, а Android 12 приносит новые функции в борьбе за конфиденциальность. Вот, что мы имеем.
Пожалуй, у Google нет другого настолько же загадочного и противоречивого проекта, как Fuchsia OS. Изначально заявленная как тестовая платформа, предназначенная для испытания новых функций для уже существующих операционных систем, в конечном итоге она вышла в релиз, став вполне себе коммерческой. Google установила её на свои умные дисплеи Nest Hub, заменив созданную специально под них операционку Cast OS. В компании никак не объяснили своего решения, а, напротив, постарались сделать всё максимально тихо, чтобы не привлекать лишнего внимания. Но, судя по всему, внимание ей-таки потребовалось, потому что сама Google прочит Fuchsia OS большое будущее.
Как вы думаете, какими смартфонами пользуются сотрудники Apple? В большинстве своём это, конечно, iPhone. Скорее всего, это никакая не принудиловка. Им просто реально нравится этот смартфон. Иронично, но то же правило действует и в отношении сотрудников других брендов. Они тоже пользуются iPhone, в чём мы неоднократно убеждались. Что и говорить, если глава Huawei самолично говорит, что любит технику Apple и покупает её не только для себя, но и для членов своей семьи. А какими мессенджерами пользуются разработчики этих самых мессенджеров?
«В основном на YouTube люблю смотреть познавательные видео, например ….интервью Ирины Хакамады». У вас что курят то? Какие интервью, какая Ирина Хакамада, зачем об «этом» тут писать? Вы бы еще написали «Использую фонарик для подсветке при поиске у себя в трусах»….
Почему столько негатива) Дайте мне хотя бы в одной статье побыть блогером)
Сам пользуюсь двумя смартфонами, на іOS это айфон 6S он меня пока полностью устраивает,на Андроиде Mi8, с приложений немного конечно больше)), самые основные Google новости, Facebook, Telegram, YouTube,PUBG,4pda,OLX,Total Commander,HD Video Box,Oddmar, Messenger, + по работе штук 5 приложений и это только основные)))
Получение списка приложений в Android
Android SDK предоставляет много средств для работы с системой. В том числе он позволяет получать список приложений, которые установлены на устройстве. Это может быть полезно, когда нужно получить сведения о сторонних приложениях (размер APK, путь до приложения, имя пакета и т.д.). Например, в наших приложениях получение списка, содержащего сторонние приложения, играет большую роль: в GreenBro с помощью этого списка выводятся сведения о приложениях, а также выполняются различные действия.
В Менеджере системных приложений и APK Extractor же список приложений необходим, чтобы удалять приложения и извлекать APK из приложений соответственно.
В этой статье мы рассмотрим, как можно получать список приложений, установленных на устройстве, а также как происходит установка приложений на устройство.
Класс PackageManager
PackageManager предоставляет API, который фактически управляет установкой, удалением и обновлением приложений. Когда мы устанавливаем файл APK, PackageManager анализирует этот APK и выводит результат.
Получить экземпляр класса PackageManager можно с помощью метода getPackageManager(). PackageManager предоставляет методы для запросов к установленным пакетам и соответствующим разрешениям.
Где хранятся файлы APK на Android?
В зависимости от типа данных, на Androiid файлы могут храниться в следующих местах:
Как PackageManager хранит информацию о приложении?
Менеджер пакетов хранит информацию о приложении в трёх файлах, расположенных в /data/system.
packages.xml
Этот XML-файл содержит список разрешений и пакеты\приложения. Он хранит две вещи: разрешения и пакет. Например:
Разрешения хранятся в теге
. Каждое разрешение имеет три атрибута: name, package и protection. Атрибут name это имя разрешения, которое мы используем в AndroidManifest.xml. Атрибут package указывает на пакет, которому принадлежит разрешение, в большинстве случаев это «android». Атрибут protection указывает на уровень безопасности.
содержит 10 атрибутов и несколько подтегов.
Атрибут | Описание |
name | Имя пакета |
codePath | Путь установки APK |
nativeLibraryPath | Нативная библиотека, расположенная по умолчанию в /data/data/ /lib |
flag | Хранит флаги ApplicationInfo |
ft | Время в шестнадцатtричном формате |
lt | Время установки в шестнадцатеричном формате |
ut | Время последнего обновления в шестнадцатеричном формате |
version | Код версии из AndroidManifest.xml |
sharedUserId | Идентификатор пользователя Linux, который будет использоваться совместно с другими приложениями. |
userId | Идентификатор пользователя Linux |
Подтеги же здесь следующие:
содержат разрешения, которые разработчик установил в AndroidManifest.xml
packages.list
Это простой текстовый файл, содержащий имя пакета, идентификатор пользователя, флаги и каталог data.
package-stopped.xml
Этот файл содержит список пакетов, которые были остановлены. Остановленные приложения не могут принимать широковещательные сообщения.
Получаем список приложений
Рассмотрим получение списка установленных приложений на примере GreenBro.
При запуске приложения запускается AsyncTask, внутри которого получаем экземпляр PackageManager и затем копируем в список List все данные об установленных приложениях.
Метод getInstalledApplications() принимает в качестве параметра флаг GET_META_DATA, который определяет, что нам нужные метаданные каждого пакета.
Результатом является список объектов ApplicationInfo для каждого установленного приложения. Класс ApplicationInfo предоставляет подробную информацию о пакете, собранную из тега в AndroidManifest.xml, нам оттуда нужны лишь самые важные данные.
Поэтому в цикле проверяем каждый объект из полученного списка и записывать данные в собственный класс AppInfo, чтобы затем использовать в основном потоке.
Здесь с помощью метода getPackageInfo() класса PackageManager мы получаем общую информацию о приложении по заданному имени пакета. После эта информация объединяется с информацией, полученной от getInstalledApplications() и сохраняется в объекте AppInfo со следующими полями:
Чтобы узнать название приложения, можно также воспользоваться PackageManager, как показано ниже.
Проверка же на то, является ли приложение системным, тоже достаточно проста и показана ниже.
В конце работы AsyncTask возвращает результат обратно в основной поток. Вот и всё, мы загрузили себе список всех установленных на устройстве приложений и можем продолжить с ним работу.
Получение списка приложений в Android : 4 комментария
Подскажите пожалуйста, в конструкции:
final PackageManager pm = context.getPackageManager();
List apps = new ArrayList();
List packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
Чем является «context»?
Это локальная переменная, Вы можете передавать контекст из активити или фрагмента
» List packages = pm.getInstalledApplications( »
а есть ли функция наподобие getRunnedApplications(), которая выдает список запущенных последних приложений?
как отличить приложение от сервиса? Проверка на системное приложение не помогает
Как найти список всех приложений, установленных из Google Play
Если у Вас уже давно имеется смартфон, то Вы, вероятно, установили и удалили уже намного больше приложений, чем можете запомнить. Вот как получить доступ к списку всех приложений, которые Вы установили на своих телефонах Android в течение времени.
Эта функция встроена в Google Play Store, поэтому Вы можете увидеть весь список с любого устройства, на котором используется Ваша учетная запись Google. Даже приложения, которые Вы установили на Вашем первом Android-телефоне, должны отображаться здесь (при условии, что они все еще доступны для загрузки, конечно). Кроме того, поскольку это часть Google Play Store, процесс просмотра приложений будет одинаковым на всех устройствах.
Для начала запустите Google Play Store и откройте меню. Для этого либо сделайте свайп вправо, либо коснитесь трех линий в верхнем левом углу.
Здесь нажмите «Мои приложения и игры».
В этом меню есть три вкладки (или четыре, в зависимости от того, зарегистрированы ли Вы в каких-либо бета тестах приложений). Третий вариант должен называться «Библиотека». Нажмите на него.
По умолчанию этот список показывает все приложения, которые Вы установили в прошлом, но которые в настоящее время не установлены на устройстве, которое Вы используете. Это имеет смысл, потому что есть вкладка «Установленные», расположенная слева от вкладки «Библиотека», которая покажет Вам все, что в настоящее время установлено на устройстве.
Здесь нужно обратить внимание на несколько разных вариантов: во-первых, Вы можете выбрать сортировку списка по недавним, что покажет Вам те приложения, которые недавно были добавлены в Вашу учетную запись или в алфавитном порядке. Выбирайте.
Вы также можете удалить любое приложение из этого списка. Также стоит отметить, что если это платное приложение, то Вам не придется повторно покупать его, если Вы когда-нибудь захотите его переустановить. Он по-прежнему связан с Вашей учетной записью Google.
Как получить список установленных приложений для android и выбрать один для запуска
Я задал аналогичный вопрос на этой неделе, но я все еще не понимаю, как получить список всех установленных приложений, а затем выбрать один для запуска.
и это только показывает приложение, которое предварительно установлено или может запустить тип намерения ACTION_MAIN.
Я также знаю, что могу использовать PackageManager для получения всех установленных приложений, но как я могу использовать это для запуска конкретного приложения?
17 ответов:
Ниже приведен код, чтобы получить список действий / приложений, установленных на Android:
вы получите все необходимые данные в ResolveInfo для запуска приложения. Вы можете проверить ResolveInfo документация здесь.
вот более чистый способ с помощью packageManager
другой способ фильтрации в системных приложениях (работает с примером выше):
получение списка установленных несистемных приложений
для фильтрации по системным приложениям:
чтобы получить все установленные приложения, вы можете использовать Диспетчер пакетов..
для запуска вы можете использовать имя пакета
вы можете найти список установленных приложений в Android устройстве с помощью кода ниже, «packageInfo» содержит информацию об установленных приложениях в устройствах. мы можем повторить намерение для приложения, установленного из объект packageinfo и с помощью startactivity (intent) можно запустить приложение. это зависит от вас, как вы организуете пользовательский интерфейс либо Listview или таблицы. так что на событие щелчка на основе позиции, вы можете повторить намерение цель объекта и начала действия.
Если есть несколько пусковых установок в одном пакете выше код имеет проблему. Например: на LG Optimus Facebook для LG, MySpace для LG, Twitter для LG содержит в одном пакете имя SNS, и если вы используете выше SNS будет повторяться. После нескольких часов исследований я пришел с ниже код. Кажется, работает хорошо.
@Jas: У меня больше нет этого кода, но я нашел что-то близкое. Я сделал это для поиска «компонентов» моего приложения, они просто действия с данной категорией.
Я прокомментировал часть, где он получает имя активности, но это довольно просто.
У меня было требование отфильтровать системные приложения, которые пользователь на самом деле не использует(например. «com.компания Qualcomm.сервис», «службы обновления» и др.). В конечном счете я добавил еще одно условие, чтобы отфильтровать список приложений. Я только что проверил, есть ли у приложения «намерение запуска».
Итак, результирующий код выглядит следующим образом.
чистое решение, которое успешно фильтрует системные приложения
идея этого решения заключается в том, что основная деятельность каждого системного приложения не имеет пользовательский значок активности. Этот метод дает мне отличный результат: