Zaproszenie do aktualizacji to proces, który prezentuje najważniejsze nowe funkcje dostępne w bieżącej aktualizacji głównej systemu operacyjnego Android.
Ma on przekonać użytkowników do zaktualizowania urządzenia do najnowszej wersji systemu operacyjnego.
Gdy na urządzeniu oczekuje na zatwierdzenie przez użytkownika aktualizacja systemu operacyjnego, użytkownicy otrzymują powiadomienie push z informacjami o nowych funkcjach i zaproszeniem do przeprowadzenia aktualizacji.
Producenci urządzeń mogą włączyć funkcję Upgrade Party na swoich urządzeniach z systemem operacyjnym Android, przesyłając prośbę o aktywowanie zaproszenia do aktualizacji Androida.
Dostosowywanie zaproszenia do aktualizacji
Zaproszenie do aktualizacji możesz dostosować na te sposoby:
- Usuń nieistotne funkcje.
- Zaktualizuj język w blokach tekstu.
- Zmodyfikuj animacje, kolory i czcionki, aby pasowały do Twojej marki.
Aby dostosować proces, zapoznaj się z wytycznymi w Przewodniku po stylu zaproszenia do aktualizacji i podaj informacje o dostosowaniu w odpowiedzi z formularza.
Przewodnik po stylu zaproszenia do aktualizacji
Korzystając z tego przewodnika po stylu, możesz zmodyfikować wygląd zaproszenia do aktualizacji, aby pasowało do Twojej marki (ekrany, kolory, czcionki). Zdecydowanie zalecamy zachowanie rozmiarów i struktury zbliżonych do oryginalnego projektu.
Proces zaproszenia do aktualizacji składa się z tych 3 komponentów:
- Ekran z wprowadzeniem
- Ekran funkcji
- Ekran zakończenia
Animacja na każdym ekranie pomaga wyjaśnić każdą funkcję.
Ekran z wprowadzeniem
Ekran z wprowadzeniem zawiera krótką animację, która wita użytkownika i zachęca go do rozpoczęcia procesu wyświetlanego na tym ekranie.
Układ
Animacja urządzenia zawsze składa się z tych elementów:
- Białe tło i kolorowe kształty
- Ramka urządzenia
- Treść interfejsu
Styl
Jeśli zdecydujesz się dostosować styl Material You, możesz użyć domyślnych kolorów i kształtów pokazanych w przykładzie.
Jeśli używasz koloru marki, upewnij się, że dobrze współgra on z tłem interfejsu.
Ruch
Opcja 1. Z zegarem na ekranie głównym
- Na ekranie pojawiają się cyfry.
- Cyfry przesuwają się na środek, zmniejszając się. Pojawia się ramka telefonu komórkowego.
- Telefon zmniejsza się. Na ekranie zaczynają pojawiać się kształty.
- Animacja jest zakończona. Kształty nadal delikatnie się poruszają.
|
|
Opcja 2. Bez zegara na ekranie głównym
- Na ekranie pojawia się telefon komórkowy.
- Telefon przesuwa się na środek, zwiększając się. Na ekranie zaczynają pojawiać się kształty.
- Telefon osiąga maksymalny rozmiar, a kształty nadal się poruszają.
|
|
Ekran funkcji
Każdy ekran funkcji wyróżnia jedną funkcję w nowym systemie operacyjnym.
Układ
Animacja urządzenia zawsze składa się z tych elementów:
- Kolorowe tło
- Ramka urządzenia
- Treść interfejsu
Styl
- Wybierz kolor tła, który dobrze współgra z treścią interfejsu i ogólnym wyglądem.
- Na ekranach ustaw rozmiary czcionek, które są łatwo czytelne. W razie potrzeby ustaw większe rozmiary czcionek.
Ruch
Nagraj animację procesu każdej funkcji, w tym interakcji dotykowych. Wyeksportuj nagrania jako pliki Lottie.
Ekran zakończenia
Ekran zakończenia zamyka proces. Informuje użytkowników, że przeszli przez wszystkie ekrany.
Układ
Animacja urządzenia zawsze składa się z tych elementów:
- Półkole na tle (plus animowane kształty)
- Ramka urządzenia
- Treść interfejsu
Styl
- Wybierz kolor tła, który dobrze współgra z treścią interfejsu i ogólnym wyglądem.
- Użyj kształtu półkola.
Ruch
Postępuj zgodnie ze standardowym procesem animacji ekranu zakończenia:
- Telefon komórkowy przesuwa się nieco do góry.
- Na tle pojawia się okrąg.
- Zza telefonu komórkowego wyłaniają się kształty.
- Kształty wylatują z tła jak konfetti.
|
|
Testowanie procesu zaproszenia do aktualizacji
- Na urządzeniu z Androidem otwórz Ustawienia > Google > Debugowanie Upgrade Party.
- 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, który chcesz przetestować). Możesz:
- Kliknąć Zapisz fałszywą aktualizację (bieżąca wersja). (na przykład jeśli używasz Androida 13, spowoduje to uruchomienie procesu testowego Androida 13)
- Kliknąć Zapisz oczekującą aktualizację (bieżąca wersja + 1). (na przykład jeśli używasz Androida 12, spowoduje to uruchomienie procesu testowego Androida 13)
- Kliknąć Zgłoś aktualizację systemu operacyjnego.
- Kliknij otrzymane powiadomienie lub Otwórz zaproszenie do aktualizacji.
Opcje wyzwalania zaproszenia do aktualizacji
Istnieją 3 sposoby wyzwalania procesu zaproszenia do aktualizacji: 1. automatyczny 2. transmisja 3. Wyzwalanie za pomocą pakietu SDK Usług Google Play
Automatyczny – powiadomienie wyzwalane przez Google (tylko w przypadku urządzeń z gOTA)
W przypadku urządzeń OEM z gOTA integracja jest automatyczna i nie wymaga żadnych czynności związanych z integracją zaproszenia do aktualizacji. Gdy zostanie wykryta oczekująca aktualizacja głównego systemu operacyjnego, usługi Google Play wyślą na urządzenie powiadomienie push, które spowoduje uruchomienie procesu zaproszenia do aktualizacji.
Transmisja Androida – powiadomienie wyzwalane przez Google (zalecane)
Transmisja aplikacji to najprostszy i zalecany sposób integracji procesu zaproszenia do aktualizacji.
Odbiornik transmisji umożliwia wyzwalanie procesu zaproszenia do aktualizacji z aplikacji za pomocą komunikatu. Transmisja wysyła na urządzenie powiadomienie push z usług Google Play, które powoduje uruchomienie procesu zaproszenia do aktualizacji.
Wymagania wstępne dotyczące transmisji
Aby przygotować aplikację, wykonaj czynności opisane w poniższych sekcjach.
Sprawdź, czy w plikach konfiguracyjnych aplikacji znajdują się te wartości:
- minSdkVersion na poziomie 14 lub wyższym
- compileSdkVersion na poziomie 28 lub wyższym
- usesPermission na poziomie android.permission.RECOVERY
Wysyłanie transmisji
Poniżej znajdziesz instrukcje dotyczące wysyłania transmisji Androida przez aplikację OEM (lub kod), aby wyzwolić powiadomienie push:
Wyślij transmisję z działaniem.
com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATEDodaj do transmisji pakiet
com.google.android.gms.com.google.android.gms
Dodatkowe wymagania
Proces zaproszenia do aktualizacji umożliwia też użytkownikom przeprowadzenie aktualizacji systemu operacyjnego bezpośrednio z tego procesu.
Aby to było możliwe, udostępnij niestandardowy intencję, którą Google może wywołać z procesu zaproszenia do aktualizacji, aby rozpocząć pobieranie aktualizacji.
Przykład użycia transmisji
Oto 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 to liczba całkowita wskazująca oczekującą wersję systemu operacyjnego (w tym przykładzie wersja Androida do zainstalowania to 14). Służy ona do określania, który proces zaproszenia do aktualizacji zostanie wyzwolony.
Pakiet SDK Usług Google Play – tylko wyzwalanie procesu
Pakiet SDK innej firmy umożliwia wyzwalanie procesu zaproszenia do aktualizacji z aplikacji lub własnych powiadomień OTA. Aby aktywować sam proces zaproszenia do aktualizacji, użyj zewnętrznego interfejsu API innej firmy. Ta metoda jest mniej zalecana.
Wymagania wstępne
Aby przygotować aplikację, wykonaj czynności opisane w poniższych sekcjach.
Sprawdź, czy w pliku kompilacji Twojej aplikacji znajdują się te wartości:
- minSdkVersion na poziomie 14 lub wyższym
- compileSdkVersion na poziomie 28 lub wyższym
Konfiguracja aplikacji
Aby skonfigurować aplikację:
1. Extract the library from the provided .zip file, and place it in your
repozytorium.
2. Dodaj zależności pakietu SDK Google Growth do pliku
Gradle na poziomie aplikacji modułu (zwykle app/build.gradle):
dependencies {
implementation files(&<#39;PATH_TO_BI>NARY/play-services-growth-16.1.0-eap04.aar';)
}
Aby udostępnić zależności klienta, dodaj te 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
Inicjowanie interfejsu API
Aby zainicjować klienta, użyj klasy UpgradeParty:
import com.google.android.gms.growth.UpgradeParty; UpgradeParty.getClient(activity);Parametr activity powinien być obiektem Activity inicjującym.
Funkcje interfejsu API
Wynikowy element UpgradePartyClient udostępnia te funkcje.
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 aktualizacji. Wynikowa wartość logiczna wskazuje, czy użytkownik kwalifikuje się, czy nie.
invokeUpgradeInvite
Task<Void> invokeUpgradeInvite();
Wywołuje aktywność zaproszenia do aktualizacji. Wynikowy obiekt _Task_ wskazuje, czy podczas uruchamiania aktywności wystąpił błąd.
Kody błędów
Obie metody interfejsu API mogą zakończyć się niepowodzeniem z wyjątkiem typu com.google.android.gms.common.api.ApiException. W takich przypadkach wywołujący powinien ponowić próbę później. Oczekiwane typowe kody stanu) to:
- INTERNAL_ERROR – w przypadku dowolnego błędu w przepływie logiki bazowej
- TIMEOUT – jeśli nie udało się obsłużyć żądania w odpowiednim czasie
- API_NOT_CONNECTED – gdy interfejs API jest niedostępny (czyli moduł UpgradeParty nie jest jeszcze gotowy)
- NETWORK_ERROR – nie udało się obsłużyć żądania z powodu błędów sieci
- DEVELOPER_ERROR – wywołujący pakiet nie ma dostępu do interfejsu UpgradeParty API
Przykład użycia pakietu 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);
}
});
}