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