«Приглашение к обновлению» — это пользовательский интерфейс, демонстрирующий ключевые новые функции, включенные в текущее доступное крупное обновление ОС Android.
Цель данного алгоритма — убедить пользователей обновить свои устройства до последней версии операционной системы.
После того, как на устройстве появится запрос на обновление ОС, ожидающий подтверждения пользователя, пользователи получат push-уведомление с отображением новых функций и предложением выполнить обновление.
Производители устройств могут активировать функцию Upgrade Party для своих устройств на базе Android, отправив запрос на активацию приглашения к обновлению Android (Android Upgrade Invite) .
Настройте интерфейс приглашения к обновлению.
Вы можете настроить процесс получения приглашения на обновление следующими способами:
- Удалите ненужные функции.
- Обновите язык в текстовых блоках.
- Измените анимацию, цвета и шрифты в соответствии с вашим фирменным стилем.
Чтобы настроить процесс, ознакомьтесь с рекомендациями в руководстве по стилю приглашений на обновление и укажите информацию для персонализации в ответе на форму.
Руководство по стилю приглашений на обновление
Используйте это руководство по стилю, чтобы изменить внешний вид приглашения на обновление в соответствии с вашим фирменным стилем (экраны, цвета, шрифты). Мы настоятельно рекомендуем сохранять размеры и структуру максимально приближенными к оригинальному дизайну.
Процесс приглашения на обновление включает в себя следующие три компонента:
- Вступительный экран
- Экран функций
- Заключительный экран
На каждом экране отображается анимация, помогающая объяснить каждую функцию.
Вступительный экран
Вступительный экран содержит короткую анимацию, которая приветствует пользователя и побуждает его начать процесс, показанный на вступительном экране.
Макет

Анимация устройства всегда состоит из:
- Белый фон и разноцветные фигуры
- Рамка устройства
- Содержимое пользовательского интерфейса
Стиль
Если вы решите адаптировать стиль Material You , вы можете использовать цвета и формы по умолчанию, показанные в примере.

Если вы используете фирменный цвет, убедитесь, что он хорошо сочетается с фоном пользовательского интерфейса.
Движение
Вариант 1: С часами на главном экране
- На экран вводятся цифры.
- Цифры смещаются к центру, уменьшаясь в размере. Появляется рамка мобильного телефона.
- Размер телефона уменьшается. Фигуры начинают появляться на экране.
- Анимация завершена. Фигуры продолжают плавно двигаться.
![]() | ![]() |
Вариант 2: Отсутствие часов на главном экране
- Мобильный телефон появляется на экране.
- Телефон перемещается к центру, увеличиваясь в размерах. Фигуры начинают появляться на экране.
- Телефон достигает максимального размера, и формы продолжают двигаться.
![]() | ![]() |
Экран функций
На каждом экране с описанием функций представлена одна из возможностей новой операционной системы.
Макет

Анимация устройства всегда состоит из:
- Красочный фон
- Рамка устройства
- Содержимое пользовательского интерфейса
Стиль
- Выберите цвет фона, который хорошо сочетается с содержимым пользовательского интерфейса и общим внешним видом.
- На экранах установите легко читаемый размер шрифта. При необходимости установите более крупный размер шрифта.
Движение
Запишите анимацию работы каждого элемента, включая взаимодействие с сенсорным экраном. Экспортируйте записи в файлы Lottie .
Заключительный экран
Завершающий экран подводит итог. Он сообщает пользователям, что они прошли все экраны.
Макет

Анимация устройства всегда состоит из:
- Полукруг на фоне (плюс анимированные фигуры)
- Рамка устройства
- Содержимое пользовательского интерфейса
Стиль
- Выберите цвет фона, который хорошо сочетается с содержимым пользовательского интерфейса и общим внешним видом.
- Используйте форму полукруга.
Движение
Следуйте стандартной последовательности анимации заключительного экрана:
- Мобильный телефон немного поднимается.
- На заднем плане появляется круг.
- Из-за мобильного телефона появляются какие-то фигуры.
- Фигуры разлетаются на фоне, словно конфетти.
![]() | ![]() |
Протестируйте процесс приглашения к обновлению.
- На устройстве Android перейдите в: Настройки > Google > Upgrade Party debug .
- Подготовьте триггер для приглашения к обновлению для соответствующей ОС устройства (в зависимости от текущей версии ОС и конкретного процесса приглашения к обновлению для тестирования). Возможные варианты:
- Нажмите «Записать фиктивное обновление (текущая версия)» . (Например, если у вас установлена ОС Android 13, это запустит процесс тестирования Android 13).
- Нажмите «Записать ожидающее обновление (текущая версия + 1)» . (Например, если у вас установлена ОС Android 12, это запустит тестовый процесс Android 13).
- Нажмите « Сообщить об обновлении ОС»
- Нажмите либо на полученное уведомление, либо на кнопку «Открыть приглашение на обновление».
Параметры запуска приглашения на обновление
Существует 3 различных способа запуска процесса приглашения к обновлению: 1. автоматический; 2. широковещательный; 3. запуск через SDK Play Services.
Автоматическое уведомление, инициированное Google (только для устройств с установленным gOTA).
Для устройств OEM-производителей, работающих под управлением gOTA, интеграция происходит автоматически, и никаких дополнительных шагов интеграции Upgrade Invite не требуется. Как только будет обнаружено ожидаемое крупное обновление ОС, на устройство будет отправлено push-уведомление от сервисов Google Play, что приведет к запуску процесса Upgrade Invite.
Android Broadcast — уведомление, инициированное Google (рекомендуется)
Рассылка через приложение — это самый простой и рекомендуемый способ интеграции процесса приглашения к обновлению.
Приемник широковещательной рассылки позволяет запускать процесс приглашения к обновлению из вашего приложения с помощью широковещательного сообщения. Рассылка отправляет push-уведомление на устройство из сервисов Google Play, что приводит к запуску процесса приглашения к обновлению.
Предварительные условия для трансляции
Для подготовки приложения выполните действия, описанные в следующих разделах.
Убедитесь, что в конфигурационных файлах вашего приложения используются следующие значения:
- Минимальная версия SDK — 14 или выше.
- compileSdkVersion 28 или выше
- A usesPermission of android.permission.RECOVERY
Отправить трансляцию
Ниже приведены инструкции для приложения (или кода) от производителя, позволяющие отправить широковещательное сообщение на Android для запуска push-уведомления:
Отправить сообщение с указанием действия.
com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATEДобавьте пакет
com.google.android.gmsв список рассылаемых сообщений.com.google.android.gms
Дополнительные требования
Процесс приглашения к обновлению также позволяет пользователям выполнять обновление операционной системы непосредственно из этого процесса.
Для этого необходимо предоставить Google возможность вызывать пользовательское намерение из процесса приглашения к обновлению, которое запустит загрузку обновления.
Пример использования в трансляции
См. следующий пример трансляции приложения:
Context context = getApplicationContext();
Intent upgradeInviteIntent = new Intent()
.setAction( "com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE")
.setPackage("com.google.android.gms");
.putExtra("com.google.android.gms.growth.upgradeparty.upgradeinvite.EXTRA_PENDING_ANDROID_OS_VERSION_NUMBER", 14);
context.sendBroadcast(updateIntent);
Значение ключа EXTRA_PENDING_ANDROID_OS_VERSION_NUMBER представляет собой целое число, указывающее на ожидающую установку версию ОС (в этом примере устанавливается версия Android 14). Это используется для определения того, какой поток приглашения к обновлению будет запущен.
SDK для сервисов Play — только для запуска потоков.
Сторонний SDK позволяет запускать процесс приглашения к обновлению из вашего приложения или ваших собственных OTA-уведомлений. Используйте сторонний внешний API для активации самого процесса приглашения к обновлению. Этот метод менее рекомендуется.
Предварительные требования
Для подготовки приложения выполните действия, описанные в следующих разделах.
Убедитесь, что в файле сборки вашего приложения используются следующие значения:
- Минимальная версия SDK — 14 или выше.
- compileSdkVersion 28 или выше
Настройте свое приложение
Для настройки вашего приложения:
1. Extract the library from the provided .zip file, and place it in your
репозиторий. 2. Добавьте зависимости для Google Growth SDK в файл Gradle на уровне приложения вашего модуля, обычно это app/build.gradle :
dependencies {
implementation files(&<#39;PATH_TO_BI>NARY/play-services-growth-16.1.0-eap04.aar';)
}
Для обеспечения работы клиента необходимо включить следующие библиотеки:
com.google.android.gms:play-services-base:18.0.1 com.google.android.gms:play-services-basement:18.0.0 com.google.android.gms:play-services-tasks:18.0.1
Инициализация API
Для инициализации клиента используйте класс UpgradeParty:
import com.google.android.gms.growth.UpgradeParty; UpgradeParty.getClient(activity);Параметр activity должен содержать инициирующий объект Activity.
Функции API
В результате выполнения UpgradePartyClient предоставляет следующие возможности.
isEligibleForUpgradeInvite
import com.google.android.gms.growth.UpgradeInviteEligibilityParams;
Task<Boolean> isEligibleForUpgradeInvite(UpgradeInviteEligibilityParams params);
/** Contains parameters for the eligibility query. */
class UpgradeInviteEligibilityParams {
/** Integer indicating the pending OS version (in this example, the Android version to be installed is 14). This is used to determine which Upgrade Invite flow will be triggered. */
int pendingAndroidOsVersionNumber;
}
Возвращает задачу , которая асинхронно проверяет, имеет ли пользователь право на получение приглашения на обновление. Полученное логическое значение указывает, имеет ли пользователь право на обновление или нет.
invokeUpgradeInvite
Task<Void> invokeUpgradeInvite();
Вызывает действие «Приглашение к обновлению». Полученный объект _Task_ указывает, произошла ли ошибка при запуске действия.
Коды ошибок
Оба метода API могут завершиться с ошибкой типа com.google.android.gms.common.api.ApiException . В таких случаях ожидается повторная попытка вызова позже. Ожидаемые общие коды состояния включают:
- INTERNAL_ERROR — ошибка в потоке выполнения базовой логики.
- ТАЙМ-АУТ — если запрос не удалось обработать в установленные сроки.
- API_NOT_CONNECTED - когда API недоступен (то есть модуль UpgradeParty еще не готов).
- NETWORK_ERROR - запрос не удалось обработать из-за сетевых ошибок.
- DEVELOPER_ERROR - вызывающему пакету запрещен доступ к API UpgradeParty.
Пример использования SDK
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import com.google.android.gms.growth.UpgradeParty;
import com.google.android.gms.growth.UpgradePartyClient;
public class SampleActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final UpgradePartyClient client = UpgradeParty.getClient(this);
// Hide the invocation button initially
View startUpgradeInviteButton = findViewById(R.id.__some_button__);
startUpgradeInviteButton.setVisibility(View.GONE);
// Register an onClick handler to invoke the Upgrade Party Activity
startUpgradeInviteButton
.setOnClickListener(
view -> {
client
.invokeUpgradeInvite()
.addOnCompleteListener(
task -> {
if (!task.isSuccessful()) {
// Do something with error, see task.getException()
}
});
});
}
// Check if eligible for an Upgrade Party
client
.isEligibleForUpgradeInvite()
.addOnCompleteListener(
task -> {
if (!task.isSuccessful()) {
// Do something with error, see task.getException()
} else {
// Show/Hide invocation button, based on the result
int visibility =
task.getResult() ? View.VISIBLE : View.GONE;
startUpgradeInviteButton.setVisibility(visibility);
}
});
}





