Invito all'aggiornamento Android

Upgrade Invite è un flusso di utenti che mostra le nuove funzionalità chiave incluse nell'attuale aggiornamento principale del sistema operativo Android disponibile.

Il flusso ha lo scopo di convincere gli utenti ad aggiornare il proprio dispositivo alla versione più recente del sistema operativo.

Una volta che un dispositivo ha un aggiornamento del sistema operativo in attesa di approvazione da parte dell'utente, gli utenti ricevono una notifica push che mostra le nuove funzionalità e li invita a eseguire l'aggiornamento.

Per abilitare l'invito all'aggiornamento per il tuo sistema operativo Android, registrati utilizzando il modulo Richiesta di attivazione dell'invito all'aggiornamento Android .

Personalizza l'esperienza di invito all'aggiornamento

Puoi personalizzare l'esperienza di invito all'aggiornamento nei seguenti modi:

  • Rimuovi funzionalità irrilevanti.
  • Aggiorna la lingua nei blocchi di testo.
  • Modifica le animazioni, i colori e i caratteri per adattarli al tuo marchio.

Per personalizzare il flusso, rivedi le linee guida nella Guida allo stile dell'invito all'aggiornamento e includi le informazioni di personalizzazione nel modulo Richiesta di attivazione dell'invito all'aggiornamento Android .

Aggiorna la guida allo stile degli inviti

Utilizza questa guida di stile per modificare l'aspetto di Upgrade Invite per adattarlo al tuo marchio (schermate, colori, caratteri). Consigliamo vivamente di mantenere le dimensioni e la struttura vicine al disegno originale.

Il flusso di invito all'aggiornamento presenta i tre componenti seguenti:

  • Schermata introduttiva
  • Schermata delle funzionalità
  • Schermata finale
Figura 1. I tre tipi di schermate nel flusso di invito all'aggiornamento

Un'animazione su ciascuna schermata aiuta a spiegare ciascuna funzionalità.

Schermata introduttiva

La schermata introduttiva contiene una breve animazione che accoglie l'utente e lo incoraggia ad avviare il flusso mostrato nella schermata introduttiva.

Disposizione
Figura 2. Layout wireframe per la schermata introduttiva di invito all'aggiornamento

L'animazione del dispositivo è sempre composta da:

  • Sfondo bianco e forme colorate
  • Cornice del dispositivo
  • Contenuti dell'interfaccia utente
Messa in piega

Se scegli di adattare lo stile di Material You , puoi utilizzare i colori e le forme predefiniti mostrati nell'esempio.

Figura 3. Combinazione di colori predefinita per il flusso di invito all'aggiornamento.

Se utilizzi il colore del tuo marchio, assicurati che funzioni bene con lo sfondo dell'interfaccia utente.

Movimento

Opzione 1: con un orologio sulla schermata principale

  1. I numeri entrano nello schermo.
  2. I numeri si spostano al centro mentre diminuiscono di dimensione. Viene visualizzata la cornice del telefono cellulare.
  3. Il telefono diminuisce di dimensioni. Le forme iniziano a entrare nello schermo.
  4. L'animazione è completata. Le forme continuano a muoversi dolcemente.
Figura 4. Layout wireframe per l'animazione della schermata introduttiva dell'invito all'aggiornamento con un orologio.
Figura 5. Esempio di animazione per la schermata introduttiva con un orologio.

Opzione 2: nessun orologio nella schermata iniziale

  1. Il cellulare entra nello schermo.
  2. Il telefono si sposta al centro aumentando di dimensioni. Le forme iniziano a entrare nello schermo.
  3. Il telefono raggiunge la dimensione massima e le forme continuano a muoversi.
Figura 6. Layout wireframe per l'animazione della schermata introduttiva di invito all'aggiornamento senza orologio.
Figura 7. Esempio di animazione per la schermata introduttiva senza orologio.

Schermata delle funzionalità

Ciascuna schermata delle funzionalità evidenzia una funzionalità del nuovo sistema operativo.

Disposizione
Figura 8. Layout wireframe per le schermate della funzione Invito all'aggiornamento.

L'animazione del dispositivo è sempre composta da:

  • Sfondo colorato
  • Cornice del dispositivo
  • Contenuti dell'interfaccia utente
Messa in piega
  • Scegli un colore di sfondo che si adatti bene al contenuto dell'interfaccia utente e all'aspetto generale.
  • All'interno delle schermate, impostare dimensioni dei caratteri facilmente leggibili. Se necessario, imposta dimensioni dei caratteri più grandi.
Movimento

Registra un'animazione del flusso di ciascuna funzionalità, comprese le interazioni touch. Esporta le registrazioni come file Lottie .

Schermata finale

La schermata finale completa il flusso. Indica agli utenti che hanno attraversato tutte le schermate.

Disposizione
Figura 9. Layout wireframe per la schermata finale dell'invito all'aggiornamento.

L'animazione del dispositivo è sempre composta da:

  • Mezzo cerchio sullo sfondo (più forme animate)
  • Cornice del dispositivo
  • Contenuti dell'interfaccia utente
Messa in piega
  • Seleziona un colore di sfondo che si adatti bene al contenuto dell'interfaccia utente e all'aspetto generale.
  • Usa una forma a semicerchio.
Movimento

Segui il flusso di animazione standard della schermata finale:

  1. Il cellulare si sposta leggermente verso l'alto.
  2. Sullo sfondo appare un cerchio.
  3. Le forme emergono da dietro il cellulare.
  4. Le forme volano fuori dallo sfondo come coriandoli.
Figura 10. Layout wireframe per l'animazione della schermata finale dell'invito all'aggiornamento.
Figura 11. Esempio di animazione della schermata finale.

Testare il flusso di invito all'aggiornamento

  1. Sul dispositivo Android, vai su: Impostazioni > Google > Debug Upgrade Party .
  2. Preparare il trigger per l'invito all'aggiornamento per il sistema operativo del dispositivo pertinente (a seconda della versione corrente del sistema operativo e del flusso specifico di invito all'aggiornamento da testare).
    1. Fare clic su Scrivi aggiornamento falso (versione corrente) . (ad esempio, se utilizzi il sistema operativo Android 13, ciò attiverà il flusso di test di Android 13)
    2. Fare clic su Scrivi aggiornamento in sospeso (versione corrente + 1) . (ad esempio, se utilizzi il sistema operativo Android 12, verrà attivato il flusso di test di Android 13)
    3. Fare clic su Segnala aggiornamento del sistema operativo
  3. Fare clic sulla notifica ricevuta oppure fare clic su Apri invito all'aggiornamento.

Opzioni di attivazione per l'invito all'aggiornamento

Esistono 3 modi diversi per attivare il flusso di invito all'aggiornamento: 1. automatico 2. trasmesso 3. Attivato dall'SDK di Play Services

Automatico: notifica attivata da Google (solo per dispositivi in ​​esecuzione gOTA)

Per i dispositivi OEM che eseguono gOTA, l'integrazione è automatica e non sono richiesti passaggi di integrazione di Upgrade Invite. Una volta rilevato un aggiornamento importante del sistema operativo in sospeso, verrà inviata una notifica push al dispositivo da Google Play Services, portando al flusso di invito all'aggiornamento.

Android Broadcast: notifica attivata da Google (consigliato)

Una trasmissione dell'app è il modo più semplice e consigliato per integrare il flusso di invito all'aggiornamento.

Un ricevitore broadcast ti consente di attivare il flusso di invito all'aggiornamento dalla tua app utilizzando un messaggio broadcast. La trasmissione invia una notifica push al dispositivo da Google Play Services, portando al flusso di invito all'aggiornamento.

Prerequisiti di trasmissione

Per preparare la tua app, completa i passaggi nelle sezioni seguenti.

Assicurati che i file di configurazione della tua app utilizzino i seguenti valori:

  • Una minSdkVersion pari o superiore a 14
  • Un compileSdkVersion di 28 o superiore
  • A usesPermission di android.permission.RECOVERY

Invia la trasmissione

Vedi di seguito le istruzioni per l'app OEM (o il codice) per inviare una trasmissione Android per attivare la notifica push:

  1. Invia trasmissione con l'azione.

    com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE
    
  2. Aggiungi il pacchetto com.google.android.gms alla trasmissione.

    com.google.android.gms
    

Requisiti addizionali

Il flusso di invito all'aggiornamento consente inoltre agli utenti di eseguire l'aggiornamento del sistema operativo direttamente dal flusso.

Affinché funzioni, esponi un intento personalizzato che Google può chiamare dal flusso di invito all'aggiornamento che attiva il download dell'aggiornamento.

Esempio di utilizzo della trasmissione

Vedere il seguente esempio di trasmissione dell'applicazione:

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);

Il valore della chiave EXTRA_PENDING_ANDROID_OS_VERSION_NUMBER è un intero che indica la versione del sistema operativo in sospeso (in questo esempio, la versione di Android da installare è la 14). Viene utilizzato per determinare quale flusso di invito all'aggiornamento verrà attivato.

Play Services SDK: solo attivazione del flusso

L'SDK di terze parti ti consente di attivare il flusso di invito all'aggiornamento dalla tua app o dalle tue notifiche OTA. Utilizza un'API esterna di terze parti per attivare il flusso di invito all'upgrade stesso. Questo metodo è meno consigliato.

Prerequisiti

Per preparare la tua app, completa i passaggi nelle sezioni seguenti.

Assicurati che il file di build della tua app utilizzi i seguenti valori:

  • Una minSdkVersion pari o superiore a 14
  • Un compileSdkVersion di 28 o superiore

Configura la tua app

Per configurare la tua app:

1. Extract the library from the provided .zip file, and place it in your

deposito. 2. Aggiungi le dipendenze per Google Growth SDK al file Gradle a livello di app del tuo modulo, normalmente app/build.gradle :

   dependencies {
    implementation files('<PATH_TO_BINARY>/play-services-growth-16.1.0-eap04.aar')
   }
  1. Per fornire le dipendenze del client, includere le seguenti librerie:

    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
    

Inizializzazione dell'API

  1. Per inizializzare un client, utilizzare la classe UpgradeParty:

    import com.google.android.gms.growth.UpgradeParty;
    UpgradeParty.getClient(activity);
    
  2. Il parametro dell'attività dovrebbe essere l'oggetto Activity iniziale.

Funzioni dell'API

Il risultato UpgradePartyClient espone la seguente funzionalità.

isIdoneo all'invito all'aggiornamento

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;
}

Restituisce un'attività che verifica in modo asincrono se l'utente è idoneo per un invito all'aggiornamento. Il valore booleano risultante indica se l'utente è idoneo o meno.

richiamareUpgradeInvite

Task<Void> invokeUpgradeInvite();

Richiama l'attività di invito all'aggiornamento. Il _Task _object risultante indica se si è verificato un errore durante l'avvio dell'attività.

Codici di errore

Entrambi i metodi API potrebbero non riuscire con un'eccezione di tipo com.google.android.gms.common.api.ApiException . In questi casi, è previsto che il chiamante riprovi in ​​un secondo momento. I codici di stato comuni previsti includono:

  • INTERNAL_ERROR - per qualsiasi errore nel flusso della logica sottostante
  • TIMEOUT - se la richiesta non può essere gestita in modo tempestivo
  • API_NOT_CONNECTED - quando l'API non è disponibile (ovvero, il modulo UpgradeParty non è ancora pronto)
  • NETWORK_ERROR : non è stato possibile gestire la richiesta a causa di errori di rete
  • DEVELOPER_ERROR : al pacchetto chiamante non è consentito accedere all'API UpgradeParty

Esempio di utilizzo dell'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);
             }
           });
   }