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