Einladung zum Android-Upgrade

„Upgrade Invite“ ist ein Benutzerfluss, der die wichtigsten neuen Funktionen des aktuell verfügbaren großen Android-Betriebssystem-Upgrades vorstellt.

Der Ablauf soll dazu beitragen, Benutzer davon zu überzeugen, ihr Gerät auf die neueste Betriebssystemversion zu aktualisieren.

Sobald für ein Gerät ein Betriebssystem-Upgrade zur Genehmigung durch den Benutzer aussteht, erhalten Benutzer eine Push-Benachrichtigung mit den neuen Funktionen und der Einladung, das Upgrade durchzuführen.

Um die Upgrade-Einladung für Ihr Android-Betriebssystem zu aktivieren, registrieren Sie sich mit dem Formular „Anfrage zur Aktivierung der Android-Upgrade-Einladung“ .

Passen Sie das Upgrade-Einladungserlebnis individuell an

Sie können das Upgrade-Einladungserlebnis auf folgende Weise anpassen:

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

Um den Ablauf anzupassen, lesen Sie die Richtlinien im Upgrade Invite Style Guide und geben Sie Ihre Anpassungsinformationen in das Formular „Anfrage zur Aktivierung der Android Upgrade Invite“ ein.

Aktualisieren Sie den Styleguide für Einladungen

Verwenden Sie diesen Styleguide, um das Erscheinungsbild der Upgrade-Einladung an Ihre eigene Marke anzupassen (Bildschirme, Farben, Schriftarten). Wir empfehlen dringend, die Größen und die Struktur nahe am Originaldesign zu halten.

Der Upgrade-Einladungsablauf umfasst die folgenden drei Komponenten:

  • Einführungsbildschirm
  • Funktionsbildschirm
  • Outro-Bildschirm
Abbildung 1. Die drei Bildschirmtypen im Upgrade-Einladungsablauf

Eine Animation auf jedem Bildschirm hilft dabei, jede Funktion zu erklären.

Einführungsbildschirm

Der Einführungsbildschirm enthält eine kurze Animation, die den Benutzer begrüßt und ihn dazu ermutigt, den auf dem Einführungsbildschirm angezeigten Ablauf zu starten.

Layout
Abbildung 2. Wireframe-Layout für den Einführungsbildschirm „Upgrade-Einladung“.

Die Geräteanimation besteht immer aus:

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

Wenn Sie sich für die Anpassung des Material You- Stils entscheiden, können Sie die im Beispiel gezeigten Standardfarben und -formen verwenden.

Abbildung 3. Standardfarbschema für den Upgrade-Einladungsablauf.

Wenn Sie Ihre eigene Markenfarbe verwenden, stellen Sie sicher, dass diese gut zum UI-Hintergrund passt.

Bewegung

Option 1: Mit einer Uhr auf dem Startbildschirm

  1. Zahlen kommen auf den Bildschirm.
  2. Die Zahlen bewegen sich in die Mitte, während sie kleiner werden. Der Rahmen des Mobiltelefons erscheint.
  3. Das Telefon wird kleiner. Die Formen beginnen, auf den Bildschirm zu gelangen.
  4. Die Animation ist abgeschlossen. Die Formen bewegen sich sanft weiter.
Abbildung 4. Wireframe-Layout für die Einführungsbildschirmanimation „Upgrade Invite“ mit einer Uhr.
Abbildung 5. Beispielanimation für den Einführungsbildschirm mit einer Uhr.

Option 2: Keine Uhr auf dem Startbildschirm

  1. Das Mobiltelefon erscheint auf dem Bildschirm.
  2. Das Telefon bewegt sich in die Mitte und vergrößert sich dabei. Die Formen beginnen, auf den Bildschirm zu gelangen.
  3. Das Telefon erreicht die maximale Größe und die Formen bewegen sich weiter.
Abbildung 6. Wireframe-Layout für die Einführungsbildschirmanimation „Upgrade Invite“ ohne Uhr.
Abbildung 7. Beispielanimation für den Intro-Bildschirm ohne Uhr.

Funktionsbildschirm

Jeder Funktionsbildschirm hebt eine Funktion im neuen Betriebssystem hervor.

Layout
Abbildung 8. Wireframe-Layout für die Funktionsbildschirme „Upgrade-Einladung“.

Die Geräteanimation besteht immer aus:

  • Bunter Hintergrund
  • Geräterahmen
  • UI-Inhalt
Styling
  • Wählen Sie eine Hintergrundfarbe, die gut zum UI-Inhalt und zum allgemeinen Erscheinungsbild passt.
  • Stellen Sie innerhalb der Bildschirme Schriftgrößen ein, die gut lesbar sind. Stellen Sie bei Bedarf größere Schriftgrößen ein.
Bewegung

Zeichnen Sie eine Animation des Ablaufs jeder Funktion auf, einschließlich Berührungsinteraktionen. Exportieren Sie die Aufnahmen als Lottie-Dateien .

Outro-Bildschirm

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

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

Die Geräteanimation besteht immer aus:

  • Halbkreis auf dem Hintergrund (plus animierte Formen)
  • Geräterahmen
  • UI-Inhalt
Styling
  • Wählen Sie eine Hintergrundfarbe, die gut zum UI-Inhalt und zum allgemeinen Erscheinungsbild passt.
  • Verwenden Sie eine Halbkreisform.
Bewegung

Befolgen Sie den Standardablauf für die Outro-Bildschirmanimation:

  1. Das Mobiltelefon bewegt sich etwas nach oben.
  2. Im Hintergrund erscheint ein Kreis.
  3. Hinter dem Mobiltelefon tauchen Formen auf.
  4. Die Formen fliegen wie Konfetti aus dem Hintergrund.
Abbildung 10. Wireframe-Layout für die Outro-Bildschirmanimation „Upgrade Invite“.
Abbildung 11. Beispiel einer Outro-Bildschirmanimation.

Testen Sie den Upgrade-Einladungsablauf

  1. Gehen Sie auf dem Android-Gerät zu: Einstellungen > Google > Upgrade-Party-Debug .
  2. Bereiten Sie den Auslöser für die Upgrade-Einladung für das entsprechende Gerätebetriebssystem vor (abhängig von Ihrer aktuellen Betriebssystemversion und dem spezifischen Upgrade-Einladungsablauf, der getestet werden soll). Entweder:
    1. Klicken Sie auf Fake-Upgrade schreiben (aktuelle Version) . (Wenn Sie beispielsweise das Betriebssystem Android 13 ausführen, wird dadurch der Android 13-Testablauf ausgelöst.)
    2. Klicken Sie auf Ausstehendes Upgrade schreiben (aktuelle Version + 1) . (Wenn Sie beispielsweise das Betriebssystem Android 12 ausführen, wird dadurch der Testablauf für Android 13 ausgelöst.)
    3. Klicken Sie auf Betriebssystem-Upgrade melden
  3. Klicken Sie entweder auf die erhaltene Benachrichtigung oder auf „Upgrade-Einladung öffnen“.

Auslöseroptionen für Upgrade-Einladung

Es gibt drei verschiedene Möglichkeiten, den Upgrade-Einladungsfluss auszulösen: 1. automatisch 2. Übertragung 3. Auslösung des Play Services SDK

Automatisch – Von Google ausgelöste Benachrichtigung (nur für Geräte mit gOTA-Ausführung)

Bei OEM-Geräten, auf denen gOTA ausgeführt wird, erfolgt die Integration automatisch und es sind keine Integrationsschritte zur Upgrade-Einladung erforderlich. Sobald ein ausstehendes größeres Betriebssystem-Upgrade erkannt wird, wird von den Google Play-Diensten eine Push-Benachrichtigung an das Gerät gesendet, die zum Upgrade-Einladungsfluss führt.

Android Broadcast – Von Google ausgelöste Benachrichtigung (empfohlen)

Eine App-Übertragung ist die einfachste und empfohlene Möglichkeit, den Upgrade-Einladungsablauf zu integrieren.

Mit einem Broadcast-Empfänger können Sie den Upgrade-Einladungsfluss über Ihre App mithilfe einer Broadcast-Nachricht auslösen. Die Übertragung sendet eine Push-Benachrichtigung von den Google Play-Diensten an das Gerät, was zum Upgrade-Einladungsfluss führt.

Broadcast-Voraussetzungen

Um Ihre App vorzubereiten, führen Sie die Schritte in den folgenden Abschnitten aus.

Stellen Sie sicher, dass die Konfigurationsdateien Ihrer App die folgenden Werte verwenden:

  • Eine minSdkVersion von 14 oder höher
  • Eine „compileSdkVersion“ von 28 oder höher
  • Eine usePermission von android.permission.RECOVERY

Senden Sie die Sendung

Nachfolgend finden Sie die Anweisungen für die OEM-App (oder den Code) zum Senden einer Android-Übertragung, um die Push-Benachrichtigung auszulösen:

  1. Broadcast mit der Aktion senden.

    com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE
    
  2. Fügen Sie das Paket com.google.android.gms zur Übertragung hinzu.

    com.google.android.gms
    

Zusätzliche Anforderungen

Mit dem Upgrade-Einladungsflow können Benutzer das Betriebssystem-Upgrade auch direkt aus dem Flow heraus durchführen.

Damit dies funktioniert, stellen Sie eine benutzerdefinierte Absicht bereit, die Google über den Upgrade-Einladungsfluss aufrufen kann, der den Download des Updates auslöst.

Beispielhafte Broadcast-Nutzung

Sehen Sie sich das folgende Beispiel einer Anwendungsübertragung an:

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). Dies wird verwendet, um zu bestimmen, welcher Upgrade-Einladungsfluss ausgelöst wird.

Play Services SDK – nur Flow-Triggerung

Mit dem SDK eines Drittanbieters können Sie den Upgrade-Einladungsfluss über Ihre App oder Ihre eigenen OTA-Benachrichtigungen auslösen. Verwenden Sie eine externe API eines Drittanbieters, um den Upgrade-Einladungsablauf selbst zu aktivieren. Diese Methode wird weniger empfohlen.

Voraussetzungen

Um Ihre App vorzubereiten, führen Sie die Schritte in den folgenden Abschnitten aus.

Stellen Sie sicher, dass die Build-Datei Ihrer App die folgenden Werte verwendet:

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

Konfigurieren Sie Ihre App

So konfigurieren Sie Ihre App:

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

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

   dependencies {
    implementation files('<PATH_TO_BINARY>/play-services-growth-16.1.0-eap04.aar')
   }
  1. Um die Abhängigkeiten des Clients bereitzustellen, schließen Sie die folgenden Bibliotheken ein:

    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. Um einen Client zu initialisieren, verwenden Sie die UpgradeParty-Klasse:

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

API-Funktionen

Der resultierende UpgradePartyClient stellt die folgende Funktionalität 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, die asynchron überprüft, ob der Benutzer für eine Upgrade-Einladung berechtigt ist. Der resultierende boolesche Wert gibt an, ob der Benutzer berechtigt ist oder nicht.

invokeUpgradeInvite

Task<Void> invokeUpgradeInvite();

Ruft die Aktivität „Upgrade-Einladung“ auf. Das resultierende _Task _object 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 erwartet, dass der Anrufer es zu einem späteren Zeitpunkt erneut versucht. Zu den erwarteten allgemeinen Statuscodes gehören:

  • INTERNAL_ERROR – für jeden Fehler im Ablauf der zugrunde liegenden Logik
  • TIMEOUT – wenn die Anfrage nicht rechtzeitig bearbeitet werden konnte
  • API_NOT_CONNECTED – wenn die API nicht verfügbar ist (d. h. das UpgradeParty-Modul ist noch nicht bereit)
  • NETWORK_ERROR – Die Anfrage konnte aufgrund von Netzwerkfehlern nicht bearbeitet 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);
             }
           });
   }