Как проверить, является ли приложение несистемным в Android?

Я получаю списокApplicationInfo Объекты сpackageManager.getInstalledApplications (0) и пытается классифицировать их по тому, являются ли они системным приложением.

Некоторое время я использую описанную техникуВотОднако, увидев это в моем приложении, некоторые приложения не попали в список несистемных приложений (например,facebook, который при наличии просит систему установить себя на SD-карту). После следующего прочтения фактической документации дляApplicationInfo.FLAG_SYSTEMИ, понимая, что он на самом деле не фильтрует системные приложения, я сейчас ищу новый подход.

Я предполагаю, что существует большой разрыв между UID системных и несистемных приложений, которые я могу собрать, чтобы провести это различие, но пока я не нашел ответа. Я также посмотрел на другие флаги, такие какApplicationInfo.FLAG_EXTERNAL_STORAGEОднако я поддерживаю API 1.5.

Есть ли у кого-нибудь реальное решение для этого (не включаяFLAG_SYSTEM)?

Ответы на вопрос(11)

Ваш ответ на вопрос