Zaproszenie do aktualizacji Androida

Zaproszenie do aktualizacji to proces użytkownika prezentujący najważniejsze nowe funkcje zawarte w aktualnie dostępnej głównej aktualizacji systemu operacyjnego Android.

Celem tego przepływu jest przekonanie użytkowników do aktualizacji urządzenia do najnowszej wersji systemu operacyjnego.

Gdy aktualizacja systemu operacyjnego na urządzeniu będzie oczekiwana na zatwierdzenie przez użytkownika, użytkownicy otrzymają powiadomienie push wyświetlające nowe funkcje i zapraszające do przeprowadzenia aktualizacji.

Aby włączyć zaproszenie do aktualizacji dla systemu operacyjnego Android, zarejestruj się, korzystając z formularza żądania aktywacji zaproszenia do aktualizacji systemu Android .

Dostosuj doświadczenie zaproszenia do aktualizacji

Możesz dostosować doświadczenie zaproszenia do uaktualnienia w następujący sposób:

  • Usuń nieistotne funkcje.
  • Zaktualizuj język w blokach tekstowych.
  • Zmodyfikuj animacje, kolory i czcionki, aby pasowały do ​​Twojej marki.

Aby dostosować przebieg, zapoznaj się ze wskazówkami zawartymi w Przewodniku po stylach zaproszeń do uaktualnienia i podaj informacje o dostosowaniu w formularzu żądania aktywacji zaproszenia do uaktualnienia systemu Android .

Przewodnik po stylu zaproszeń do aktualizacji

Skorzystaj z tego przewodnika po stylu, aby zmodyfikować wygląd zaproszenia do aktualizacji, aby dopasować go do własnej marki (ekrany, kolory, czcionki). Zdecydowanie zalecamy zachowanie rozmiarów i konstrukcji zbliżonych do oryginalnego projektu.

Przepływ zaproszeń do aktualizacji obejmuje następujące trzy elementy:

  • Ekran wprowadzający
  • Ekran funkcji
  • Ekran zakończenia
Rysunek 1. Trzy typy ekranów w procesie zapraszania do aktualizacji

Animacja na każdym ekranie pomaga wyjaśnić każdą funkcję.

Ekran wprowadzający

Ekran wprowadzający zawiera krótką animację, która wita użytkownika i zachęca go do rozpoczęcia przepływu pokazanego na ekranie wprowadzającym.

Układ
Rysunek 2. Układ szkieletowy ekranu wprowadzającego do zaproszenia do aktualizacji

Animacja urządzenia zawsze składa się z:

  • Białe tło i kolorowe kształty
  • Rama urządzenia
  • Treść interfejsu użytkownika
Stylizacja

Jeśli zdecydujesz się na adaptację stylizacji Material You , możesz skorzystać z domyślnych kolorów i kształtów pokazanych w przykładzie.

Rysunek 3. Domyślny schemat kolorów dla procesu zaproszeń do aktualizacji.

Jeśli używasz koloru własnej marki, upewnij się, że dobrze komponuje się z tłem interfejsu użytkownika.

Ruch

Opcja 1: Z zegarem na ekranie głównym

  1. Liczby pojawiają się na ekranie.
  2. Liczby przesuwają się do środka, jednocześnie zmniejszając rozmiar. Pojawi się ramka telefonu komórkowego.
  3. Telefon zmniejsza się. Kształty zaczynają pojawiać się na ekranie.
  4. Animacja została ukończona. Kształty poruszają się delikatnie.
Rysunek 4. Schemat szkieletowy animacji ekranu wprowadzającego Upgrade Invite z zegarem.
Rysunek 5. Przykładowa animacja ekranu wprowadzającego z zegarem.

Opcja 2: Brak zegara na ekranie głównym

  1. Telefon komórkowy pojawia się na ekranie.
  2. Telefon przesuwa się na środek, zwiększając jednocześnie swój rozmiar. Kształty zaczynają pojawiać się na ekranie.
  3. Telefon osiąga maksymalny rozmiar, a kształty wciąż się poruszają.
Rysunek 6. Schemat szkieletowy animacji ekranu powitalnego Upgrade Invite bez zegara.
Rysunek 7. Przykładowa animacja ekranu wprowadzającego bez zegara.

Ekran funkcji

Każdy ekran funkcji podświetla funkcję nowego systemu operacyjnego.

Układ
Rysunek 8. Schemat szkieletowy ekranów funkcji Zaproszenie do aktualizacji.

Animacja urządzenia zawsze składa się z:

  • Kolorowe tło
  • Rama urządzenia
  • Treść interfejsu użytkownika
Stylizacja
  • Wybierz kolor tła, który dobrze współgra z zawartością interfejsu użytkownika i ogólnym wyglądem.
  • Wewnątrz ekranów ustaw rozmiary czcionek, które będą łatwo czytelne. W razie potrzeby ustaw większe rozmiary czcionek.
Ruch

Nagraj animację działania każdej funkcji, w tym interakcji dotykowych. Eksportuj nagrania jako pliki Lottie .

Ekran zakończenia

Ekran zakończenia kończy proces. Wskazuje użytkownikom, że przeszli przez wszystkie ekrany.

Układ
Rysunek 9. Układ szkieletowy ekranu końcowego zaproszenia do aktualizacji.

Animacja urządzenia zawsze składa się z:

  • Półkola w tle (plus animowane kształty)
  • Rama urządzenia
  • Treść interfejsu użytkownika
Stylizacja
  • Wybierz kolor tła, który dobrze współgra z zawartością interfejsu użytkownika i ogólnym wyglądem.
  • Użyj kształtu półkola.
Ruch

Postępuj zgodnie ze standardową animacją ekranu zakończenia:

  1. Telefon komórkowy podnosi się nieco.
  2. W tle pojawi się okrąg.
  3. Kształty wyłaniają się zza telefonu komórkowego.
  4. Kształty wylatują z tła jak konfetti.
Rysunek 10. Układ szkieletowy animacji ekranu końcowego zaproszenia do aktualizacji.
Rysunek 11. Przykładowa animacja ekranu outro.

Przetestuj przepływ zaproszeń do aktualizacji

  1. Na urządzeniu z Androidem wybierz: Ustawienia > Google > Debugowanie uaktualnienia Party .
  2. Przygotuj wyzwalacz zaproszenia do aktualizacji dla odpowiedniego systemu operacyjnego urządzenia (w zależności od bieżącej wersji systemu operacyjnego i konkretnego procesu zaproszenia do aktualizacji do przetestowania. Albo:
    1. Kliknij opcję Zapisz fałszywą aktualizację (aktualna wersja) . (na przykład, jeśli używasz systemu operacyjnego Android 13, uruchomi to proces testowy Androida 13)
    2. Kliknij opcję Zapisz oczekującą aktualizację (bieżąca wersja + 1) . (na przykład, jeśli używasz systemu operacyjnego Android 12, uruchomi to proces testowy Androida 13)
    3. Kliknij opcję Zgłoś aktualizację systemu operacyjnego
  3. Kliknij otrzymane powiadomienie lub kliknij Otwórz zaproszenie do aktualizacji.

Opcje wyzwalania zaproszenia do aktualizacji

Istnieją 3 różne sposoby wyzwalania przepływu zaproszenia do aktualizacji: 1. automatyczne 2. transmisja 3. Uruchomiony pakiet SDK Usług Play

Automatycznie — powiadomienie uruchamiane przez Google (tylko dla urządzeń z systemem gOTA)

W przypadku urządzeń OEM obsługujących gOTA integracja przebiega automatycznie i nie są wymagane żadne kroki integracji w ramach programu Upgrade Invite. Po wykryciu oczekującej ważnej aktualizacji systemu operacyjnego na urządzenie zostanie wysłane powiadomienie push z usług Google Play, co doprowadzi do zaproszenia do aktualizacji.

Transmisja w systemie Android — powiadomienie uruchamiane przez Google (zalecane)

Transmisja aplikacji to najprostszy i zalecany sposób integracji procesu zaproszeń do aktualizacji.

Odbiornik transmisji umożliwia wyzwolenie przepływu zaproszenia do aktualizacji z aplikacji za pomocą wiadomości rozgłoszeniowej. Transmisja wysyła na urządzenie powiadomienie push z usług Google Play, co prowadzi do przepływu zaproszenia do aktualizacji.

Warunki wstępne transmisji

Aby przygotować aplikację, wykonaj kroki opisane w poniższych sekcjach.

Upewnij się, że pliki konfiguracyjne aplikacji używają następujących wartości:

  • MinSdkVersion 14 lub nowszy
  • KompilacjaSdkVersion w wersji 28 lub wyższej
  • A usePermission Android.permission.RECOVERY

Wyślij transmisję

Zobacz poniżej instrukcje dotyczące aplikacji OEM (lub kodu), aby wysłać transmisję na Androida w celu uruchomienia powiadomienia push:

  1. Wyślij transmisję z akcją.

    com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE
    
  2. Dodaj pakiet com.google.android.gms do transmisji.

    com.google.android.gms
    

Dodatkowe wymagania

Proces zapraszania do aktualizacji umożliwia także użytkownikom przeprowadzenie aktualizacji systemu operacyjnego bezpośrednio z poziomu tego procesu.

Aby to zadziałało, udostępnij niestandardową intencję, którą Google może wywołać z poziomu zaproszenia do uaktualnienia, która wyzwala pobieranie aktualizacji.

Przykładowe użycie transmisji

Zobacz następujący przykład transmisji aplikacji:

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

Wartość klucza EXTRA_PENDING_ANDROID_OS_VERSION_NUMBER jest liczbą całkowitą wskazującą oczekującą wersję systemu operacyjnego (w tym przykładzie instalowana wersja Androida to 14). Służy do określenia, który proces zaproszeń do aktualizacji zostanie uruchomiony.

Zestaw SDK Usług Play – tylko wyzwalanie przepływu

Zestaw SDK innej firmy umożliwia wyzwolenie przepływu zaproszenia do aktualizacji z poziomu aplikacji lub własnych powiadomień OTA. Użyj zewnętrznego interfejsu API innej firmy, aby aktywować sam proces zaproszeń do aktualizacji. Ta metoda jest mniej zalecana.

Warunki wstępne

Aby przygotować aplikację, wykonaj kroki opisane w poniższych sekcjach.

Upewnij się, że plik kompilacji aplikacji używa następujących wartości:

  • MinSdkVersion 14 lub nowszy
  • KompilacjaSdkVersion w wersji 28 lub wyższej

Skonfiguruj swoją aplikację

Aby skonfigurować aplikację:

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

magazyn. 2. Dodaj zależności pakietu SDK Google Growth do pliku Gradle na poziomie aplikacji modułu, zwykle app/build.gradle :

   dependencies {
    implementation files('<PATH_TO_BINARY>/play-services-growth-16.1.0-eap04.aar')
   }
  1. Aby zapewnić zależności klienta, dołącz następujące biblioteki:

    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
    

Inicjalizacja API

  1. Aby zainicjować klienta, użyj klasy UpgradeParty:

    import com.google.android.gms.growth.UpgradeParty;
    UpgradeParty.getClient(activity);
    
  2. Parametr działania powinien być obiektem inicjującym działanie.

Funkcje API

Wynikowy UpgradePartyClient udostępnia następującą funkcjonalność.

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

Zwraca zadanie , które asynchronicznie sprawdza, czy użytkownik kwalifikuje się do zaproszenia do uaktualnienia. Wynikowa wartość logiczna wskazuje, czy użytkownik jest uprawniony, czy nie.

wywołaj zaproszenie do aktualizacji

Task<Void> invokeUpgradeInvite();

Wywołuje działanie zaproszenia do aktualizacji. Wynikowy obiekt _Task _object wskazuje, czy wystąpił błąd podczas uruchamiania działania.

Kody błędów

Obie metody API mogą zakończyć się niepowodzeniem z wyjątkiem typu com.google.android.gms.common.api.ApiException . W takich przypadkach oczekuje się, że osoba wywołująca spróbuje ponownie później. Oczekiwane typowe kody stanu ) obejmują:

  • INTERNAL_ERROR — w przypadku jakiegokolwiek błędu w przepływie logiki bazowej
  • TIMEOUT - jeśli żądanie nie mogło zostać obsłużone w odpowiednim czasie
  • API_NOT_CONNECTED - gdy API nie jest dostępne (czyli moduł UpgradeParty nie jest jeszcze gotowy)
  • NETWORK_ERROR — żądanie nie mogło zostać obsłużone z powodu błędów sieci
  • DEVELOPER_ERROR — pakiet wywołujący nie ma dostępu do API UpgradeParty

Przykładowe użycie 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);
             }
           });
   }