Invito all'upgrade è un flusso utente che mostra le nuove funzionalità principali incluse nell'attuale upgrade principale del sistema operativo Android disponibile.
Il flusso ha lo scopo di convincere gli utenti ad aggiornare il dispositivo all'ultima versione del sistema operativo.
Quando un dispositivo ha un upgrade del sistema operativo in attesa dell'approvazione dell'utente, gli utenti ricevono una notifica push che mostra le nuove funzionalità e li invita a eseguire l'upgrade.
I produttori di dispositivi possono attivare Upgrade Party per i propri dispositivi con sistema operativo Android inviando il modulo Richiesta di attivazione dell'invito all'upgrade di Android.
Personalizzare l'esperienza dell'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, esamina le linee guida nella guida di stile per l'invito all'upgrade e includi le informazioni di personalizzazione nella risposta del modulo.
Guida di stile per l'invito all'upgrade
Utilizza questa guida di stile per modificare l'aspetto dell'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 è composto dai seguenti tre componenti:
- Schermata introduttiva
- Schermata delle 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 incoraggia a iniziare il flusso mostrato nella schermata introduttiva.
Layout
L'animazione del dispositivo è sempre costituita da:
- Sfondo bianco e forme colorate
- Cornice del dispositivo
- Contenuti dell'interfaccia utente
Stile
Se scegli di adattare lo stile 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 sulla schermata Home
- I numeri vengono visualizzati sullo schermo.
- I numeri si spostano verso il centro diminuendo di dimensioni. Viene visualizzato il frame del cellulare.
- Lo smartphone si rimpicciolisce. Le forme iniziano a entrare nello schermo.
- L'animazione è stata completata. Le forme continuano a muoversi delicatamente.
|
|
Opzione 2: nessun orologio nella schermata Home
- Il cellulare entra nello schermo.
- Lo smartphone si sposta al centro e aumenta di dimensioni. Le forme iniziano a entrare nello schermo.
- Lo smartphone raggiunge le dimensioni massime e le forme continuano a muoversi.
|
|
Schermata delle funzionalità
Ogni schermata delle funzionalità mette in evidenza una funzionalità del nuovo sistema operativo.
Layout
L'animazione del dispositivo è sempre costituita da:
- Sfondo colorato
- Struttura del dispositivo
- Contenuti dell'interfaccia utente
Stile
- Scegli un colore di sfondo che si abbini 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 finale
La schermata finale completa il flusso. Indica agli utenti che hanno completato tutte le schermate.
Layout
L'animazione del dispositivo è sempre costituita da:
- Semicerchio sullo sfondo (più forme animate)
- Struttura del dispositivo
- Contenuti dell'interfaccia utente
Stile
- Seleziona un colore di sfondo che si abbini bene ai contenuti dell'interfaccia utente e all'aspetto generale.
- Utilizza una forma a semicerchio.
Movimento
Segui il flusso standard dell'animazione della schermata finale:
- Il cellulare si solleva leggermente.
- Sullo sfondo viene visualizzato un cerchio.
- Le forme emergono da dietro il cellulare.
- Le forme volano fuori dallo sfondo come coriandoli.
|
|
Testare il flusso di invito all'upgrade
- Sul dispositivo Android, vai a: Impostazioni > Google > Upgrade Party debug.
- Prepara il trigger per l'invito all'upgrade per il sistema operativo del dispositivo pertinente
(a seconda della versione attuale del sistema operativo e del flusso specifico dell'invito all'upgrade da
testare. Una di queste soglie:
- Fai clic su Scrivi upgrade falso (versione attuale). (ad esempio, se esegui il sistema operativo Android 13, verrà attivato il flusso di test di Android 13)
- Fai clic su Scrivi upgrade in attesa (versione attuale + 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 per l'upgrade.
Opzioni di attivazione per l'invito all'upgrade
Esistono tre modi diversi per attivare il flusso di invito all'upgrade: 1. Automatico 2. Trasmissione 3. SDK Play Services attivato
Automatico: notifica attivata da Google (solo per i dispositivi che eseguono gOTA)
Per i dispositivi OEM che eseguono gOTA, l'integrazione è automatica e non sono necessari passaggi di integrazione dell'invito all'upgrade. Una volta rilevato un aggiornamento principale del sistema operativo in attesa, verrà inviata una notifica push al dispositivo da Google Play Services, che porterà al flusso di invito all'upgrade.
Android Broadcast - Notifica attivata da Google (consigliata)
La trasmissione di app è il modo più semplice e consigliato per integrare il flusso di invito all'upgrade.
Un broadcast receiver 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, il 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:
- Una minSdkVersion pari a 14 o superiore
- compileSdkVersion 28 o versioni successive
- 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_UPDATEAggiungi il pacchetto
com.google.android.gmsalla trasmissione.com.google.android.gms
Requisiti aggiuntivi
Il flusso di invito all'upgrade consente inoltre agli utenti di eseguire l'upgrade del sistema operativo direttamente dal flusso.
Affinché questa operazione funzioni, esponi un intent personalizzato che Google possa chiamare dal flusso di invito all'upgrade che attiva il download dell'aggiornamento.
Esempio di utilizzo della trasmissione
Vedi 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 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 del flusso
L'SDK di terze parti ti consente di attivare il flusso di invito all'upgrade dalla tua app o dalle tue notifiche OTA. Utilizza un'API esterna di terze parti per attivare il flusso di invito all'upgrade. Questo metodo è meno consigliato.
Prerequisiti
Per preparare l'app, completa i passaggi descritti nelle sezioni seguenti.
Assicurati che il file di build dell'app utilizzi i seguenti valori:
- Una minSdkVersion pari a 14 o superiore
- compileSdkVersion 28 o versioni successive
Configura la tua app
Per configurare l'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 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 client, utilizza la classe UpgradeParty:
import com.google.android.gms.growth.UpgradeParty; UpgradeParty.getClient(activity);Il parametro attività deve essere l'oggetto Attività iniziale.
Funzioni API
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 Task che verifica in modo asincrono se l'utente è idoneo per un invito all'upgrade. Il valore booleano risultante indica se l'utente è idoneo o meno.
invokeUpgradeInvite
Task<Void> invokeUpgradeInvite();
Richiama l'attività Invito all'upgrade. L'oggetto _Task _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, il chiamante deve riprovare 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 è stata gestita 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 ha l'autorizzazione per 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);
}
});
}