Я получаю список ApplicationInfo
объектов с packageManager.getInstalledApplications (0) и пытаюсь классифицировать их по тому, являются ли они системным приложением.
Некоторое времяЯ использовал методику, описанную здесь , однако, увидев, что в моем приложении некоторые приложения не были в списке несистемных приложений (например, Facebook , который при наличиипросит систему установить себя на SD-карту).После следующего прочтения фактической документации для ApplicationInfo.FLAG_SYSTEM и понимания того, что она на самом деле не фильтрует системные приложения, я сейчас ищу новый подход.
Я предполагаю, что существует большой разрыв между UID системных и несистемных приложений, которые я могу собрать, чтобы провести это различие, но пока я не нашел ответа.Я также изучил другие флаги, такие как ApplicationInfo.FLAG_EXTERNAL_STORAGE
, однако я поддерживаю API 1.5.
У кого-нибудь есть реальное решение для этого (не включая FLAG_SYSTEM
)?