Einladung zum Android-Upgrade

Die Upgrade-Einladung ist ein User Flow, in dem die wichtigsten neuen Funktionen des aktuell verfügbaren großen Android-Betriebssystem-Upgrades präsentiert werden.

Der Ablauf soll Nutzer dazu bewegen, ihr Gerät auf die neueste Betriebssystemversion umzustellen.

Sobald für ein Gerät ein Betriebssystem-Upgrade aussteht, das noch der Nutzergenehmigung bedarf, erhalten die Nutzer eine Push-Benachrichtigung mit den neuen Funktionen und werden zum Upgrade aufgefordert.

Gerätehersteller können Upgrade Party für ihre Android-Geräte aktivieren, indem sie das Antragsformular zur Aktivierung von Android-Upgrade-Einladungen einreichen.

Einladung zum Upgrade anpassen

Sie können die Einladung zum Upgrade so anpassen:

  • Entfernen Sie irrelevante Funktionen.
  • Aktualisieren Sie die Sprache in den Textblöcken.
  • Passen Sie die Animationen, Farben und Schriftarten an Ihre Marke an.

Wenn du den Ablauf anpassen möchtest, lies dir die Richtlinien im Styleguide für Upgrade-Einladungen durch und füge die Informationen zur Anpassung in die Formularantwort ein.

Styleguide für Upgrade-Einladungen

Mithilfe dieser Stilrichtlinie kannst du die Einladung zum Upgrade an deine Marke anpassen (Bildschirme, Farben, Schriftarten). Wir empfehlen dringend, die Größen und die Struktur dem Originaldesign möglichst nahe zu halten.

Der Ablauf für die Upgrade-Einladung umfasst die folgenden drei Komponenten:

  • Einführungsbildschirm
  • Bildschirm mit Funktionen
  • Outro-Bildschirm
Abbildung 1: Die drei Bildschirmtypen im Ablauf der Upgrade-Einladung

Auf jedem Bildschirm wird eine Animation angezeigt, die die einzelnen Funktionen veranschaulicht.

Einführungsbildschirm

Der Einführungsbildschirm enthält eine kurze Animation, in der der Nutzer begrüßt und aufgefordert wird, den auf dem Einführungsbildschirm angezeigten Ablauf zu starten.

Layout
Abbildung 2. Wireframe-Layout für den Einstiegsbildschirm der Einladung zum Upgrade

Die Geräteanimation besteht immer aus:

  • Weißer Hintergrund und bunte Formen
  • Geräterahmen
  • UI-Inhalte
Styling

Wenn Sie das Material You-Design anpassen möchten, können Sie die im Beispiel gezeigten Standardfarben und -formen verwenden.

Abbildung 3 Standardfarbschema für den Upgrade-Einladungsvorgang.

Wenn Sie Ihre eigene Markenfarbe verwenden, achten Sie darauf, dass sie gut zum UI-Hintergrund passt.

Bewegung

Option 1:Mit einer Uhr auf dem Startbildschirm

  1. Auf dem Display werden Zahlen angezeigt.
  2. Die Zahlen bewegen sich in die Mitte und werden kleiner. Der Frame für Smartphones wird angezeigt.
  3. Das Smartphone wird kleiner. Die Formen erscheinen auf dem Bildschirm.
  4. Die Animation ist abgeschlossen. Die Formen bewegen sich sanft weiter.
Abbildung 4 Wireframe-Layout für die Einladung zum Upgrade mit einer Uhr als Eingangsbildschirmanimation.
Abbildung 5: Beispielanimation für den Intro-Bildschirm mit einer Uhr.

Option 2:Keine Uhr auf dem Startbildschirm

  1. Das Smartphone wird in den Bildschirm eingeführt.
  2. Das Smartphone bewegt sich in die Mitte und wird dabei größer. Die Formen erscheinen auf dem Bildschirm.
  3. Das Smartphone erreicht die maximale Größe und die Formen bewegen sich weiter.
Abbildung 6: Wireframe-Layout für die Animation des Einführungsbildschirms der Upgrade-Einladung ohne Uhr
Abbildung 7. Beispielanimation für den Startbildschirm ohne Uhr

Bildschirm mit Funktionen

Auf jedem Funktionsbildschirm wird eine Funktion des neuen Betriebssystems hervorgehoben.

Layout
Abbildung 8. Wireframe-Layout für die Bildschirme der Funktion „Upgrade-Einladung“.

Die Geräteanimation besteht immer aus:

  • Bunt
  • Geräterahmen
  • UI-Inhalte
Styling
  • Wählen Sie eine Hintergrundfarbe aus, die gut zu den UI-Inhalten und zum allgemeinen Erscheinungsbild passt.
  • Legen Sie auf den Bildschirmen Schriftgrößen fest, die gut lesbar sind. Legen Sie bei Bedarf eine größere Schriftgröße fest.
Bewegung

Erstellen Sie eine Animation des Ablaufs jeder Funktion, einschließlich Touch-Interaktionen. Exportieren Sie die Aufnahmen als Lottie-Dateien.

Outro-Bildschirm

Der Outro-Bildschirm rundet den Ablauf ab. Sie zeigt den Nutzern an, dass sie alle Bildschirme durchlaufen haben.

Layout
Abbildung 9. Wireframe-Layout für den Outro-Bildschirm der Upgrade-Einladung.

Die Geräteanimation besteht immer aus:

  • Halbkreis im Hintergrund (plus animierte Formen)
  • Geräterahmen
  • UI-Inhalte
Styling
  • Wählen Sie eine Hintergrundfarbe aus, die gut zu den Inhalten der Benutzeroberfläche und zum allgemeinen Erscheinungsbild passt.
  • Verwenden Sie einen Halbkreis.
Bewegung

Folge der Standardabfolge für die Animation des Outro-Bildschirms:

  1. Das Smartphone bewegt sich etwas nach oben.
  2. Im Hintergrund wird ein Kreis angezeigt.
  3. Formen tauchen hinter dem Smartphone auf.
  4. Die Formen fliegen wie Konfetti aus dem Hintergrund.
Abbildung 10. Wireframe-Layout für die Outro-Bildschirmanimation der Upgrade-Einladung.
Abbildung 11 Beispiel für eine Outro-Bildschirmanimation.

Upgrade-Einladungsablauf testen

  1. Gehen Sie auf dem Android-Gerät zu Einstellungen > Google > Upgrade Party-Debugging.
  2. Bereiten Sie den Trigger für die Upgrade-Einladung für das entsprechende Betriebssystem vor. Dies hängt von Ihrer aktuellen Betriebssystemversion und dem zu testenden Upgrade-Einladungsvorgang ab. Sie haben folgende Möglichkeiten:
    1. Klicken Sie auf Fake-Upgrade (aktuelle Version) schreiben. Wenn Sie beispielsweise Android 13 verwenden, wird der Testablauf für Android 13 ausgelöst.
    2. Klicken Sie auf Ausstehendes Upgrade schreiben (aktuelle Version + 1). Wenn Sie beispielsweise Android 12 verwenden, wird der Testablauf für Android 13 ausgelöst.
    3. Klicken Sie auf Betriebssystem-Upgrade melden.
  3. Klicken Sie entweder auf die empfangene Benachrichtigung oder auf Upgrade-Einladung öffnen.

Triggeroptionen für Upgrade-Einladung

Es gibt drei Möglichkeiten, die Einladung zum Upgrade auszulösen: 1. automatisch 2. per Broadcast 3. Play Services SDK ausgelöst

Automatisch – von Google ausgelöste Benachrichtigung (nur für Geräte mit gOTA)

Bei OEM-Geräten mit gOTA erfolgt die Integration automatisch und es sind keine Schritte zur Integration von Upgrade-Einladungen erforderlich. Sobald ein ausstehendes größeres Betriebssystemupdate erkannt wird, wird eine Push-Benachrichtigung von den Google Play-Diensten an das Gerät gesendet, was zum Upgrade-Aufforderungsvorgang führt.

Android-Broadcast – von Google ausgelöste Benachrichtigung (empfohlen)

Eine App-Broadcast-Nachricht ist die einfachste und empfohlene Methode, um den Upgrade-Einladungsvorgang zu integrieren.

Mit einem Broadcast-Empfänger können Sie den Ablauf der Upgrade-Einladung über eine Broadcast-Nachricht aus Ihrer App auslösen. Über die Übertragung wird eine Push-Benachrichtigung von den Google Play-Diensten an das Gerät gesendet, was zum Ablauf der Einladung zum Upgrade führt.

Voraussetzungen für die Übertragung

Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre App vorzubereiten.

Achten Sie darauf, dass die Konfigurationsdateien Ihrer App die folgenden Werte verwenden:

  • minSdkVersion 14 oder höher
  • Eine compileSdkVersion von 28 oder höher
  • Eine „usesPermission“-Angabe für „android.permission.RECOVERY“

Nachricht an alle senden

Unten finden Sie eine Anleitung für die OEM-App (oder den OEM-Code), um einen Android-Broadcast zu senden, um die Push-Benachrichtigung auszulösen:

  1. Senden Sie eine Broadcast-Nachricht mit der Aktion.

    com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE
    
  2. Füge der Übertragung das com.google.android.gms-Paket hinzu.

    com.google.android.gms
    

Zusätzliche Anforderungen

Über die Upgrade-Einladung können Nutzer das Betriebssystem-Upgrade auch direkt ausführen.

Damit das funktioniert, müssen Sie eine benutzerdefinierte Intent-Definition bereitstellen, die Google über den Upgrade-Vorgang aufrufen kann, um das Herunterladen des Updates auszulösen.

Beispiel für die Verwendung von Broadcasts

Hier ein Beispiel für eine Anwendungsweitergabe:

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

Der Wert des Schlüssels EXTRA_PENDING_ANDROID_OS_VERSION_NUMBER ist eine Ganzzahl, die die ausstehende Betriebssystemversion angibt. In diesem Beispiel ist die zu installierende Android-Version 14. Damit wird bestimmt, welcher Ablauf für die Upgrade-Einladung ausgelöst wird.

Play Services SDK – nur Ablaufauslösung

Mit dem Drittanbieter-SDK können Sie den Ablauf für die Upgrade-Einladung über Ihre App oder Ihre eigenen OTA-Benachrichtigungen auslösen. Verwende eine externe API eines Drittanbieters, um den Ablauf für die Upgrade-Einladung selbst zu aktivieren. Diese Methode wird weniger empfohlen.

Voraussetzungen

Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre App vorzubereiten.

Achten Sie darauf, dass in der Build-Datei Ihrer App die folgenden Werte verwendet werden:

  • minSdkVersion 14 oder höher
  • Eine compileSdkVersion von 28 oder höher

App konfigurieren

So konfigurieren Sie Ihre App:

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

Repository. 2. Fügen Sie der Gradle-Datei Ihres Moduls auf App-Ebene die Abhängigkeiten für das Google Growth SDK hinzu, normalerweise app/build.gradle:

   dependencies {
    implementation files('<PATH_TO_BINARY>/play-services-growth-16.1.0-eap04.aar')
   }
  1. Fügen Sie die folgenden Bibliotheken hinzu, um die Abhängigkeiten des Clients bereitzustellen:

    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-Initialisierung

  1. Verwende die UpgradeParty-Klasse, um einen Client zu initialisieren:

    import com.google.android.gms.growth.UpgradeParty;
    UpgradeParty.getClient(activity);
    
  2. Der Aktivitätsparameter sollte das auslösende Aktivitätsobjekt sein.

API-Funktionen

Der resultierende UpgradePartyClient stellt die folgenden Funktionen bereit.

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

Gibt eine Aufgabe zurück, mit der asynchron geprüft wird, ob der Nutzer für eine Upgrade-Einladung infrage kommt. Der resultierende boolesche Wert gibt an, ob der Nutzer berechtigt ist oder nicht.

invokeUpgradeInvite

Task<Void> invokeUpgradeInvite();

Ruft die Aktivität „Upgrade-Einladung“ auf. Das resultierende „Task“-Objekt gibt an, ob beim Starten der Aktivität ein Fehler aufgetreten ist.

Fehlercodes

Beide API-Methoden können mit einer Ausnahme vom Typ com.google.android.gms.common.api.ApiException fehlschlagen. In solchen Fällen wird der Anrufer gebeten, es später noch einmal zu versuchen. Zu den häufigen Statuscodes gehören:

  • INTERNAL_ERROR: Bei einem Fehler im Ablauf der zugrunde liegenden Logik
  • TIMEOUT: wenn die Anfrage nicht rechtzeitig bearbeitet werden konnte
  • API_NOT_CONNECTED: Die API ist nicht verfügbar, d. h. das UpgradeParty-Modul ist noch nicht bereit.
  • NETWORK_ERROR: Die Anfrage konnte aufgrund von Netzwerkfehlern nicht verarbeitet werden.
  • DEVELOPER_ERROR: Das aufrufende Paket darf nicht auf die UpgradeParty API zugreifen.

Beispiel für die SDK-Nutzung

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