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