La invitación a actualizar es un flujo de usuarios que muestra las nuevas funciones clave incluidas en la actualización principal disponible del SO Android.
El flujo tiene como objetivo convencer a los usuarios de que actualicen su dispositivo a la versión más reciente del SO.
Una vez que un dispositivo tiene una actualización del SO pendiente de aprobación del usuario, los usuarios reciben una notificación push en la que se muestran las nuevas funciones y se los invita a realizar la actualización.
Los fabricantes de dispositivos pueden habilitar la Upgrade Party para sus dispositivos con SO Android. Para ello, deben enviar el formulario de solicitud para activar Android Upgrade Invite.
Personaliza la experiencia de la invitación para actualizar
Puedes personalizar la experiencia de la invitación a actualizar de las siguientes maneras:
- Quita las funciones irrelevantes.
- Actualiza el idioma en los bloques de texto.
- Modifica las animaciones, los colores y las fuentes para que coincidan con tu marca.
Para personalizar el flujo, revisa los lineamientos de la Guía de estilo de actualización de invitaciones y agrega la información de personalización en la respuesta del formulario.
Guía de estilo de la invitación para actualizar
Usa esta guía de estilo para modificar el aspecto de la invitación a actualizar y adaptarlo a tu marca (pantallas, colores, fuentes). Te recomendamos que mantengas los tamaños y la estructura lo más parecidos posible al diseño original.
El flujo de invitación para actualizar tiene los siguientes tres componentes:
- Pantalla de introducción
- Pantalla de funciones
- Pantalla de cierre
En cada pantalla, se muestra una animación que ayuda a explicar cada función.
Pantalla de introducción
La pantalla de introducción contiene una animación breve que le da la bienvenida al usuario y lo alienta a iniciar el flujo que se muestra en la pantalla de introducción.
Diseño
La animación del dispositivo siempre consta de lo siguiente:
- Fondo blanco y formas coloridas
- Marco del dispositivo
- Contenido de la IU
Aplica estilos
Si decides adaptar el diseño de Material You, puedes usar los colores y las formas predeterminados que se muestran en el ejemplo.
Si usas el color de tu marca, asegúrate de que combine bien con el fondo de la IU.
Movimiento
Opción 1: Con un reloj en la pantalla principal
- Aparecen números en la pantalla.
- Los números se mueven hacia el centro mientras disminuyen de tamaño. Aparecerá el marco del teléfono celular.
- El teléfono se reduce de tamaño. Las formas comienzan a entrar en la pantalla.
- Se completó la animación. Las formas se siguen moviendo suavemente.
|
|
Opción 2: No hay reloj en la pantalla principal
- El teléfono celular entra en la pantalla.
- El teléfono se mueve al centro mientras aumenta de tamaño. Las formas comienzan a entrar en la pantalla.
- El teléfono alcanza el tamaño máximo y las formas siguen moviéndose.
|
|
Pantalla de funciones
Cada pantalla de funciones destaca una función del nuevo SO.
Diseño
La animación del dispositivo siempre consta de lo siguiente:
- Fondo colorido
- Marco del dispositivo
- Contenido de la IU
Aplica estilos
- Elige un color de fondo que funcione bien con el contenido de la IU y con la apariencia general.
- Dentro de las pantallas, establece tamaños de fuente que sean fácilmente legibles. Si es necesario, establece tamaños de fuente más grandes.
Movimiento
Graba una animación del flujo de cada función, incluidas las interacciones táctiles. Exporta las grabaciones como archivos Lottie.
Pantalla de cierre
La pantalla de cierre completa el flujo. Indica a los usuarios que ya vieron todas las pantallas.
Diseño
La animación del dispositivo siempre consta de lo siguiente:
- Semicírculo en el fondo (más formas animadas)
- Marco del dispositivo
- Contenido de la IU
Aplica estilos
- Selecciona un color de fondo que funcione bien con el contenido de la IU y con la apariencia general.
- Usa una forma de semicírculo.
Movimiento
Sigue el flujo estándar de la animación de la pantalla final:
- El teléfono celular se mueve un poco hacia arriba.
- Aparece un círculo en el fondo.
- Las formas aparecen detrás del teléfono celular.
- Las formas salen volando del fondo como confeti.
|
|
Prueba el flujo de invitación para actualizar
- En el dispositivo Android, ve a Configuración > Google > Upgrade Party debug.
- Prepara el activador de Upgrade Invite para el SO del dispositivo correspondiente (según la versión actual del SO y el flujo específico de Upgrade Invite que se probará). Una de estas opciones:
- Haz clic en Write Fake upgrade (current version). (por ejemplo, si ejecutas el SO Android 13, se activará el flujo de prueba de Android 13)
- Haz clic en Escribir actualización pendiente (versión actual + 1). (por ejemplo, si ejecutas el SO Android 12, se activará el flujo de prueba de Android 13)
- Haz clic en Report OS upgrade.
- Haz clic en la notificación que recibiste o en Abrir invitación para actualizar.
Opciones de activación para la invitación a actualizar
Existen 3 formas diferentes de activar el flujo de invitación a la actualización: 1. Automática 2. Transmisión 3. Se activó el SDK de Play Services
Automática: Notificación activada por Google (solo para dispositivos que ejecutan gOTA)
En el caso de los dispositivos OEM que ejecutan gOTA, la integración es automática y no se requieren pasos de integración de UpgradeInvite. Una vez que se detecte una actualización importante del SO pendiente, los Servicios de Google Play enviarán una notificación push al dispositivo, lo que dará lugar al flujo de invitación a la actualización.
Transmisión de Android: Notificación activada por Google (recomendado)
Una transmisión de la app es la forma más sencilla y recomendada de integrar el flujo de invitación a actualizar.
Un receptor de emisión te permite activar el flujo de invitación a la actualización desde tu app con un mensaje de emisión. La transmisión envía una notificación push al dispositivo desde los Servicios de Google Play, lo que lleva al flujo de invitación a la actualización.
Requisitos previos para la transmisión
Para preparar tu app, completa los pasos que se indican en las siguientes secciones.
Asegúrate de que los archivos de configuración de tu app usen los siguientes valores:
- Un minSdkVersion de 14 o superior
- Un compileSdkVersion de 28 o posterior
- Un usesPermission de android.permission.RECOVERY
Envía el anuncio
A continuación, se indican las instrucciones para que la app (o el código) del OEM envíe una transmisión de Android para activar la notificación push:
Envía la transmisión con la acción.
com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATEAgrega el paquete
com.google.android.gmsa la transmisión.com.google.android.gms
Requisitos adicionales
El flujo de invitación para actualizar también permite a los usuarios realizar la actualización del SO directamente desde el flujo.
Para que esto funcione, expón un intent personalizado al que Google pueda llamar desde el flujo de invitación a la actualización que activa la descarga de la actualización.
Ejemplo de uso de la transmisión
Consulta el siguiente ejemplo de una transmisión de aplicación:
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);
El valor de la clave EXTRA_PENDING_ANDROID_OS_VERSION_NUMBER es un número entero que indica la versión pendiente del SO (en este ejemplo, la versión de Android que se instalará es la 14). Se usa para determinar qué flujo de invitación a la actualización se activará.
SDK de Play Services: Solo se activa el flujo
El SDK de terceros te permite activar el flujo de invitación a la actualización desde tu app o tus propias notificaciones OTA. Usar una API externa de terceros para activar el flujo de invitación a la actualización. Este método es menos recomendable.
Requisitos previos
Para preparar tu app, completa los pasos que se indican en las siguientes secciones.
Asegúrate de que el archivo de compilación de tu app use los siguientes valores:
- Un minSdkVersion de 14 o superior
- Un compileSdkVersion de 28 o posterior
Cómo configurar tu app
Para configurar tu app, sigue estos pasos:
1. Extract the library from the provided .zip file, and place it in your
repositorio.
2. Agrega las dependencias del SDK de Google Growth al archivo Gradle a nivel de la app de tu módulo, que suele ser app/build.gradle:
dependencies {
implementation files('<PATH_TO_BINARY>/play-services-growth-16.1.0-eap04.aar')
}
Para proporcionar las dependencias del cliente, incluye las siguientes bibliotecas:
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
Inicialización de la API
Para inicializar un cliente, usa la clase UpgradeParty:
import com.google.android.gms.growth.UpgradeParty; UpgradeParty.getClient(activity);El parámetro de actividad debe ser el objeto Activity iniciador.
Funciones de la API
El UpgradePartyClient resultante expone la siguiente funcionalidad.
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;
}
Devuelve una Task que verifica de forma asíncrona si el usuario es apto para recibir una invitación de actualización. El valor booleano resultante indica si el usuario es apto o no.
invokeUpgradeInvite
Task<Void> invokeUpgradeInvite();
Invoca la actividad de invitación a la actualización. El objeto _Task_ resultante indica si se produjo un error al iniciar la actividad.
Códigos de error
Ambos métodos de la API pueden fallar con una excepción de tipo com.google.android.gms.common.api.ApiException. En esos casos, se espera que el llamador vuelva a intentarlo más adelante. Los códigos de estado comunes esperados incluyen los siguientes:
- INTERNAL_ERROR: Para cualquier error en el flujo de la lógica subyacente
- TIMEOUT: Si la solicitud no se pudo controlar de manera oportuna
- API_NOT_CONNECTED: Se produce cuando la API no está disponible (es decir, el módulo UpgradeParty aún no está listo).
- NETWORK_ERROR: No se pudo controlar la solicitud debido a errores de red.
- DEVELOPER_ERROR: El paquete de llamada no tiene permiso para acceder a la API de UpgradeParty.
Ejemplo de uso del 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);
}
});
}