Что делает разрешение QUERY_ALL_PACKAGES? - PullRequest
1 голос
/ 14 марта 2020

Android R Предварительный просмотр 1 представил новое разрешение под названием QUERY_ALL_PACKAGES. Документация для разрешения гласит следующее:

Позволяет запрашивать любое нормальное приложение на устройстве, независимо от деклараций манифеста.

Кто-нибудь понял, что это на самом деле делает ?

Я попытался запустить на образе эмулятора следующее, и разрешение не повлияло ни на одно из них:

  • packageManager.queryIntentActivities(intent, 0)
  • packageManager.getInstalledPackages(0)

1 Ответ

1 голос
/ 20 марта 2020

Они охватывают это больше теперь, когда DP2 отсутствует.

Цитируя себя :

Пока я не проверял это аспект R DP2 пока что, кажется, что ваше приложение теперь не может узнать, какие другие приложения установлены, на общих основаниях. Приведенный пример - queryIntentActivities(), но чтобы это действительно заработало, вам нужно серьезно лоботомизировать PackageManager. Вы можете внести в белый список определенные пакеты и определенные <intent-filter> структуры, чтобы попытаться получить это для определенных случаев использования. И именно здесь вступает в игру таинственное разрешение QUERY_ALL_PACKAGES, видимое в DP1 - это разрешение снимает эти новые ограничения. Учитывая оговорку «ищите Google Play, чтобы предоставить рекомендации для приложений, которым требуется это разрешение», безопаснее всего предположить, что если вы попробуете использовать его, в конечном итоге бот забанет вас в Play Store.

Итак, вы можете попробовать свои эксперименты на DP2. Я планирую сделать то же самое в ближайшие недели.

...