L'invito all'upgrade è un flusso utente che mostra le nuove funzionalità principali incluse nell'upgrade principale del sistema operativo Android attualmente disponibile.
Lo scopo della procedura è aiutare gli utenti a convincersi a eseguire l'upgrade del dispositivo alla versione più recente del sistema operativo.
Quando su un dispositivo è in attesa l'approvazione dell'utente per un upgrade del sistema operativo, gli utenti ricevono una notifica push che mostra le nuove funzionalità e li invita a eseguire l'upgrade.
Per attivare l'Invito all'upgrade per il tuo sistema operativo Android, registrati utilizzando il modulo di richiesta di attivazione dell'Invito all'upgrade per Android.
Personalizzare l'esperienza di Invito all'upgrade
Puoi personalizzare l'esperienza di invito all'upgrade nei seguenti modi:
- Rimuovi le funzionalità non pertinenti.
- Aggiorna la lingua nei blocchi di testo.
- Modifica le animazioni, i colori e i caratteri in modo che corrispondano al tuo brand.
Per personalizzare il flusso, consulta le linee guida nella Guida allo stile di invito all'upgrade e includi le tue informazioni di personalizzazione nel modulo per richiedere l'attivazione dell'invito all'upgrade di Android.
Guida di stile per gli inviti all'upgrade
Utilizza questa guida di stile per modificare il look di Invito all'upgrade in modo che si adatti al tuo brand (schermate, colori, caratteri). Ti consigliamo vivamente di mantenere le dimensioni e la struttura simili a quelle del design originale.
Il flusso di invito all'upgrade include i seguenti tre componenti:
- Schermata introduttiva
- Schermata della funzionalità
- Schermata finale
Un'animazione su ogni schermata aiuta a spiegare ogni funzionalità.
Schermata introduttiva
La schermata introduttiva contiene una breve animazione che dà il benvenuto all'utente e lo invita a iniziare il flusso mostrato nella schermata introduttiva.
Layout
L'animazione del dispositivo è sempre composta da:
- Sfondo bianco e forme colorate
- Cornice del dispositivo
- Contenuti UI
Stile
Se scegli di adattare lo stile di Material You, puoi utilizzare i colori e le forme predefiniti mostrati nell'esempio.
Se utilizzi il colore del tuo brand, assicurati che funzioni bene con lo sfondo dell'interfaccia utente.
Movimento
Opzione 1: con un orologio nella schermata Home
- I numeri vengono visualizzati sullo schermo.
- I numeri si spostano verso il centro diminuendo di dimensioni. Viene visualizzato il frame del cellulare.
- Le dimensioni dello smartphone diminuiscono. Le forme iniziano a entrare nella schermata.
- L'animazione è completata. Le forme continuano a muoversi lentamente.
Opzione 2: nessun orologio nella schermata Home
- Il cellulare entra nello schermo.
- Lo smartphone si sposta verso il centro aumentando di dimensioni. Le forme iniziano a entrare nello schermo.
- Lo smartphone raggiunge le dimensioni massime e le forme continuano a muoversi.
Schermata della funzionalità
Ogni schermata delle funzionalità mette in evidenza una funzionalità del nuovo sistema operativo.
Layout
L'animazione del dispositivo è sempre composta da:
- Sfondo colorato
- Cornice del dispositivo
- Contenuti dell'interfaccia utente
Stile
- Scegli un colore di sfondo che si adatti bene ai contenuti dell'interfaccia utente e all'aspetto generale.
- All'interno delle schermate, imposta dimensioni dei caratteri facilmente leggibili. Se necessario, imposta dimensioni dei caratteri più grandi.
Movimento
Registra un'animazione del flusso di ogni funzionalità, incluse le interazioni touch. Esporta le registrazioni come file Lottie.
Schermata di chiusura
La schermata di chiusura completa il flusso. Indica agli utenti che hanno visualizzato tutte le schermate.
Layout
L'animazione del dispositivo è sempre composta da:
- Semicerchio sullo sfondo (più forme animate)
- Cornice del dispositivo
- Contenuti dell'interfaccia utente
Stile
- Seleziona un colore di sfondo che si adatti bene ai contenuti dell'interfaccia utente e all'aspetto generale.
- Usa la forma a semicerchio.
Movimento
Segui la procedura standard per l'animazione della schermata di chiusura:
- Il cellulare si alza un po'.
- Sullo sfondo viene visualizzato un cerchio.
- Delle forme appaiono dietro lo smartphone.
- Le forme volano fuori dallo sfondo come coriandoli.
Testare il flusso di invito all'upgrade
- Sul dispositivo Android, vai a Impostazioni > Google > Debug del gruppo di aggiornamento.
- Prepara l'attivatore di invito all'upgrade per il sistema operativo pertinente del dispositivo (a seconda della versione attuale del sistema operativo e del flusso di invito all'upgrade specifico da testare. Una di queste soglie:
- Fai clic su Scrivi upgrade falso (versione corrente). ad esempio, se esegui il sistema operativo Android 13, verrà attivato il flusso di test Android 13.
- Fai clic su Scrivi upgrade in attesa (versione corrente + 1). ad esempio, se utilizzi il sistema operativo Android 12, verrà attivato il flusso di test di Android 13.
- Fai clic su Segnala upgrade del sistema operativo.
- Fai clic sulla notifica ricevuta o su Apri invito all'upgrade.
Opzioni di attivazione Invito all'upgrade
Esistono tre modi diversi per attivare il flusso di invito all'upgrade: 1. automatico 2. trasmissione 3. SDK Play Services attivato
Automatica: notifica attivata da Google (solo per i dispositivi con gOTA in esecuzione)
Per i dispositivi OEM che eseguono gOTA, l'integrazione è automatica e non sono necessari passaggi di integrazione dell'invito all'upgrade. Quando viene rilevato un aggiornamento importante del sistema operativo in attesa, viene inviata una notifica push al dispositivo dai servizi Google Play, che rimanda al flusso di invito all'upgrade.
Android Broadcast - Notifica attivata da Google (consigliata)
Una trasmissione di app è il modo più semplice e consigliato per integrare il flusso di invito all'upgrade.
Un'entità BroadcastReceiver ti consente di attivare il flusso di invito all'upgrade dalla tua app utilizzando un messaggio di trasmissione. La trasmissione invia una notifica push al dispositivo da Google Play Services, che porta al flusso di invito all'upgrade.
Prerequisiti per la trasmissione
Per preparare l'app, completa i passaggi descritti nelle sezioni seguenti.
Assicurati che i file di configurazione dell'app utilizzino i seguenti valori:
- Un valore minSdkVersion pari o superiore a 14
- Una versione compileSdkVersion 28 o successiva
- Un usesPermission di android.permission.RECOVERY
Inviare l'annuncio
Di seguito sono riportate le istruzioni per l'app (o il codice) OEM per inviare una trasmissione Android per attivare la notifica push:
Invia la trasmissione con l'azione.
com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE
Aggiungi il pacchetto
com.google.android.gms
alla trasmissione.com.google.android.gms
Requisiti aggiuntivi
Il flusso Invito all'upgrade consente inoltre agli utenti di eseguire l'upgrade del sistema operativo direttamente dal flusso.
Affinché ciò funzioni, esponi un'intenzione personalizzata che Google può chiamare dal flusso di invito all'upgrade che attiva il download dell'aggiornamento.
Esempio di utilizzo della trasmissione
Vedi il seguente esempio di trasmissione di un'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 numero intero che indica la versione del sistema operativo in attesa (in questo esempio, la versione di Android da installare è 14). Viene utilizzato per determinare quale flusso di invito all'upgrade verrà attivato.
SDK Play Services - solo attivazione flusso
L'SDK di terze parti ti consente di attivare il flusso di invito all'upgrade dalla tua app o dalle tue notifiche OTA. Usa un'API esterna di terze parti per attivare il flusso Invito all'upgrade. Questo metodo è meno consigliato.
Prerequisiti
Per preparare l'app, completa i passaggi descritti nelle sezioni seguenti.
Assicurati che il file di compilazione dell'app utilizzi i seguenti valori:
- Un valore minSdkVersion pari o superiore a 14
- Un valore compileSdkVersion pari o superiore a 28
Configurare l'app
Per configurare la tua app:
1. Extract the library from the provided .zip file, and place it in your
repository.
2. Aggiungi le dipendenze per l'SDK Google Growth al file Gradle a livello di app del tuo modulo, in genere app/build.gradle
:
dependencies {
implementation files('<PATH_TO_BINARY>/play-services-growth-16.1.0-eap04.aar')
}
Per fornire le dipendenze del client, includi 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
Per inizializzare un cliente, utilizza la classe UpgradeParty:
import com.google.android.gms.growth.UpgradeParty; UpgradeParty.getClient(activity);
Il parametro attività deve essere l'oggetto Activity di avvio.
Funzioni API
L'oggetto UpgradePartyClient risultante espone le seguenti funzionalità.
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;
}
Restituisce un'attività che verifica in modo asincrono se l'utente è idoneo per un invitato all'upgrade. Il valore booleano risultante indica se l'utente è idoneo o meno.
invokeUpgradeInvite
Task<Void> invokeUpgradeInvite();
Richiama l'attività di invito all'upgrade. L'oggetto _Task _object risultante indica se si è verificato un errore all'avvio dell'attività.
Codici di errore
Entrambi i metodi dell'API potrebbero non riuscire con un'eccezione di tipo com.google.android.gms.common.api.ApiException. In questi casi, l'utente deve riprovare in un secondo momento. I codici di stato comuni previsti includono:
- INTERNAL_ERROR: per qualsiasi errore nel flusso della logica di base
- TIMEOUT: se non è stato possibile gestire la richiesta in modo tempestivo
- API_NOT_CONNECTED: quando l'API non è disponibile (ovvero, il modulo UpgradeParty non è ancora pronto)
- NETWORK_ERROR: la richiesta non è stata gestita a causa di errori di rete
- DEVELOPER_ERROR: il pacchetto chiamante non è autorizzato ad 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);
}
});
}