Google выполнил свое обещание улучшить сторонние магазины приложений для Android, разрешив им устанавливать приложения в фоновом режиме на Android 12.
Еще в конце сентября прошлого года Google объявлено что он будет «вносить изменения в Андроид 12...чтобы людям было еще проще использовать другие магазины приложений на своих устройствах, стараясь при этом не нарушать меры безопасности, действующие в Android», в ответ на монтажное давление от Epic Games и государственных регулирующих органов. Однако Google не уточнил точно какие изменения они собирались внести в Android, и они также не поделились никакой конкретной информацией об этом изменении на Google I/O 2021. В Google официальный пост в блоге однако, анонсировав Android 12, компания подтвердила, что «выполняет [своё] обещание сделать стороннее приложение магазины проще использовать на Android 12». Благодаря документации разработчиков мы наконец-то имеем представление о том, какие изменения происходят. сделал.
Google обновил PackageInstaller для Android. Класс SessionParams с новым методом под названием
setRequireUserAction. Этот метод указывает, должно ли требоваться действие пользователя, прежде чем будет разрешена установка приложения. По умолчанию оно равно true для любого приложения, которое содержит REQUEST_INSTALL_PACKAGES разрешение, которое требуется для любого приложения, прежде чем оно сможет инициировать сеанс установки для загрузки приложения за пределами Google Play или любого предустановленного магазина приложений на устройстве.Однако действия пользователя не будет потребуется для установки/обновления приложения, если все выполняются следующие условия:
- Установщик выбирает новое поведение.
- Устанавливаемое приложение предназначено для уровня API 29 (Android 10) или выше. (Google отмечает, что требования к целевому уровню API будут улучшены в будущих версиях Android, и эта политика соответствует Политика Google Play по целевому требованию API.)
- Установщик либо обновляется сам, либо устанавливает обновление для приложения, которое он установил первым.
- Установщик заявляет
UPDATE_PACKAGES_WITHOUT_USER_ACTION
разрешение.
Таким образом, когда магазин приложений пытается инициировать сеанс установки и использует этот новый API, обновление должно произойти без необходимости вручную принимать обновление пользователю. Это позволит значительно ускорить пакетное обновление приложений и приблизит его работу к Google Play Store.