Undangan Upgrade Android

Undangan Upgrade adalah alur penggunaan yang menampilkan fitur baru utama yang disertakan dalam upgrade Android OS utama yang tersedia saat ini.

Alur ini dimaksudkan untuk membantu meyakinkan pengguna agar mengupgrade perangkat mereka ke versi OS terbaru.

Setelah perangkat memiliki upgrade OS yang menunggu persetujuan pengguna, pengguna akan menerima notifikasi push yang menampilkan fitur baru dan mengundang mereka untuk melakukan upgrade.

Untuk mengaktifkan Undangan Upgrade untuk OS Android Anda, daftar menggunakan formulir Permintaan untuk mengaktifkan Undangan Upgrade Android.

Menyesuaikan pengalaman Undangan Upgrade

Anda dapat menyesuaikan pengalaman Undangan Upgrade dengan cara berikut:

  • Hapus fitur yang tidak relevan.
  • Perbarui bahasa di blok teks.
  • Ubah animasi, warna, dan font agar sesuai dengan brand Anda.

Untuk menyesuaikan alur, tinjau panduan di Panduan Gaya Undangan Upgrade dan sertakan informasi penyesuaian Anda di formulir Permintaan untuk mengaktifkan Undangan Upgrade Android.

Panduan Gaya Undangan Upgrade

Gunakan panduan gaya ini untuk mengubah tampilan Undangan Upgrade agar sesuai dengan merek Anda sendiri (layar, warna, font). Sebaiknya pertahankan ukuran dan struktur agar tetap mendekati desain asli.

Alur Undangan Upgrade menampilkan tiga komponen berikut:

  • Layar pengantar
  • Layar fitur
  • Layar outro
Gambar 1. Tiga jenis layar dalam alur undangan upgrade

Animasi di setiap layar membantu menjelaskan setiap fitur.

Layar pengantar

Layar pengantar berisi animasi singkat yang menyambut pengguna dan mendorong mereka untuk memulai alur yang ditampilkan di layar pengantar.

Tata Letak
Gambar 2. Tata letak wireframe untuk layar pengantar Undangan Upgrade

Animasi perangkat selalu terdiri dari:

  • Latar belakang putih dan bentuk warna-warni
  • Bingkai perangkat
  • Konten UI
Penataan gaya

Jika memilih untuk menyesuaikan gaya visual Material You, Anda dapat menggunakan warna dan bentuk default yang ditunjukkan dalam contoh.

Gambar 3. Skema warna default untuk alur Undangan Upgrade.

Jika Anda menggunakan warna merek sendiri, pastikan warna tersebut berfungsi dengan baik dengan latar belakang UI.

Gerakan

Opsi 1: Dengan jam di layar utama

  1. Angka muncul di layar.
  2. Angka akan berpindah ke tengah dengan ukuran yang lebih kecil. Bingkai ponsel akan muncul.
  3. Ukuran ponsel berkurang. Bentuk mulai masuk ke layar.
  4. Animasi selesai. Bentuk terus bergerak perlahan.
Gambar 4. Tata letak wireframe untuk animasi layar pengantar Undangan Upgrade dengan jam.
Gambar 5. Contoh animasi untuk layar pengantar dengan jam.

Opsi 2: Tidak ada jam di layar utama

  1. Ponsel masuk ke layar.
  2. Ponsel bergerak ke tengah sambil bertambah besar. Bentuk-bentuk itu mulai masuk ke layar.
  3. Ponsel mencapai ukuran maksimum dan bentuknya terus bergerak.
Gambar 6. Tata letak wireframe untuk animasi layar pengantar Undangan Upgrade tanpa jam.
Gambar 7. Contoh animasi untuk layar pengantar tanpa jam.

Layar fitur

Setiap layar fitur menyoroti fitur di OS baru.

Tata Letak
Gambar 8. Tata letak wireframe untuk layar fitur Upgrade Undang.

Animasi perangkat selalu terdiri dari:

  • Latar belakang berwarna-warni
  • Bingkai perangkat
  • Konten UI
Penataan gaya
  • Pilih warna latar belakang yang cocok dengan konten UI dan dengan tampilan umum.
  • Di dalam layar, tetapkan ukuran font yang mudah dibaca. Jika perlu, setel ukuran font yang lebih besar.
Gerakan

Merekam animasi alur setiap fitur, termasuk interaksi sentuh. Ekspor rekaman sebagai file Lottie.

Layar outro

Layar outro melengkapi alur. Hal ini menunjukkan kepada pengguna bahwa mereka telah membuka semua layar.

Tata Letak
Gambar 9. Tata letak wireframe untuk layar outro Undangan Upgrade.

Animasi perangkat selalu terdiri dari:

  • Setengah lingkaran di latar belakang (plus bentuk animasi)
  • Bingkai perangkat
  • Konten UI
Penataan gaya
  • Pilih warna latar belakang yang cocok dengan konten UI dan dengan tampilan umum.
  • Gunakan bentuk setengah lingkaran.
Gerakan

Ikuti alur animasi layar outro standar:

  1. Ponsel bergerak sedikit ke atas.
  2. Lingkaran akan muncul di latar belakang.
  3. Bentuk muncul dari balik ponsel.
  4. Bentuk-bentuk terbang keluar dari latar belakang seperti konfeti.
Gambar 10. Tata letak wireframe untuk animasi layar outro Undangan Upgrade.
Gambar 11. Contoh animasi layar outro.

Menguji Alur Undangan Upgrade

  1. Di perangkat Android, buka: Setelan > Google > Upgrade Party debug.
  2. Siapkan pemicu untuk Undangan Upgrade bagi OS perangkat yang relevan (bergantung pada versi OS Anda saat ini, dan alur Undangan Upgrade tertentu yang akan diuji. Memenuhi salah satu ketentuan berikut:
    1. Klik Tulis Upgrade palsu (versi saat ini). (misalnya, jika Anda menjalankan OS Android 13, tindakan ini akan memicu alur pengujian Android 13)
    2. Klik Tulis upgrade yang tertunda (versi saat ini + 1). (misalnya, jika Anda menjalankan OS Android 12, tindakan ini akan memicu alur pengujian Android 13)
    3. Klik Laporkan upgrade OS
  3. Klik notifikasi yang diterima, atau klik Buka Undangan Upgrade.

Opsi pemicu untuk Undangan Upgrade

Ada 3 cara berbeda untuk memicu alur Undangan Upgrade: 1. otomatis 2. siaran 3. SDK Layanan Play dipicu

Otomatis - Notifikasi yang dipicu Google (khusus perangkat yang menjalankan GOTA)

Untuk perangkat OEM yang menjalankan gOTA, integrasi bersifat otomatis dan tidak ada langkah integrasi Undangan Upgrade yang diperlukan. Setelah upgrade OS utama yang tertunda terdeteksi, tindakan ini akan mengirimkan notifikasi push ke perangkat dari layanan Google Play, yang mengarah ke alur Undangan Upgrade.

Android Broadcast - Notifikasi yang dipicu Google (Direkomendasikan)

Siaran aplikasi adalah cara paling sederhana dan direkomendasikan untuk mengintegrasikan alur Undangan Upgrade.

Penerima siaran memungkinkan Anda memicu alur Undangan Upgrade dari aplikasi menggunakan pesan siaran. Siaran mengirimkan notifikasi push ke perangkat dari layanan Google Play, yang mengarah ke alur Undangan Upgrade.

Prasyarat Siaran

Untuk mempersiapkan aplikasi Anda, selesaikan langkah-langkah di bagian berikut ini.

Pastikan file konfigurasi aplikasi Anda menggunakan nilai berikut:

  • minSdkVersion 14 atau yang lebih tinggi
  • compileSdkVersion 28 atau yang lebih tinggi
  • UsePermission dari android.permission.RECOVERY

Mengirim Siaran

Lihat petunjuk di bawah untuk aplikasi OEM (atau kode) guna mengirim siaran Android untuk memicu notifikasi push:

  1. Kirim siaran dengan tindakan.

    com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE
    
  2. Tambahkan paket com.google.android.gms ke siaran.

    com.google.android.gms
    

Persyaratan tambahan

Alur Undangan Upgrade juga memungkinkan pengguna melakukan upgrade OS langsung dari alur.

Agar berfungsi, tampilkan intent kustom yang dapat dipanggil Google dari alur Undangan Upgrade yang memicu download update.

Contoh Penggunaan Siaran

Lihat contoh siaran aplikasi berikut:

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

Nilai kunci EXTRA_PENDING_ANDROID_OS_VERSION_NUMBER adalah Bilangan Bulat yang menunjukkan versi OS yang tertunda (dalam contoh ini, versi Android yang akan diinstal adalah 14). Ini digunakan untuk menentukan alur Undangan Upgrade mana yang akan dipicu.

SDK Layanan Play - hanya pemicuan alur

SDK pihak ketiga memungkinkan Anda memicu alur Undangan Upgrade dari aplikasi atau notifikasi OTA Anda sendiri. Gunakan API eksternal pihak ketiga untuk mengaktifkan alur Undangan Upgrade itu sendiri. Metode ini kurang direkomendasikan.

Prasyarat

Untuk mempersiapkan aplikasi Anda, selesaikan langkah-langkah di bagian berikut ini.

Pastikan bahwa file build aplikasi Anda menggunakan nilai berikut:

  • minSdkVersion 14 atau yang lebih tinggi
  • compileSdkVersion 28 atau yang lebih tinggi

Mengonfigurasi aplikasi Anda

Untuk mengonfigurasi aplikasi:

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

repositori resource. 2. Tambahkan dependensi untuk Google Growth SDK ke file Gradle level aplikasi modul Anda, biasanya app/build.gradle:

   dependencies {
    implementation files('<PATH_TO_BINARY>/play-services-growth-16.1.0-eap04.aar')
   }
  1. Untuk menyediakan dependensi klien, sertakan library berikut:

    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
    

Inisialisasi API

  1. Untuk melakukan inisialisasi klien, gunakan class UpgradeParty:

    import com.google.android.gms.growth.UpgradeParty;
    UpgradeParty.getClient(activity);
    
  2. Parameter aktivitas harus berupa objek Aktivitas yang memulai.

Fungsi API

UpgradePartyClient yang dihasilkan menampilkan fungsi berikut.

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

Menampilkan Tugas yang memverifikasi secara asinkron apakah pengguna memenuhi syarat untuk Undangan Upgrade. Nilai boolean yang dihasilkan menunjukkan apakah pengguna memenuhi syarat atau tidak.

invokeUpgradeInvite

Task<Void> invokeUpgradeInvite();

Memanggil Aktivitas Undangan Upgrade. Objek _Task _yang dihasilkan menunjukkan apakah terjadi error saat memulai aktivitas.

Kode Error

Kedua metode API dapat gagal dengan pengecualian jenis com.google.android.gms.common.api.ApiException. Dalam kasus tersebut, pemanggil diharapkan untuk mencoba lagi nanti. Kode status umum) yang diharapkan mencakup:

  • INTERNAL_ERROR - untuk error apa pun dalam alur logika yang mendasarinya
  • TIMEOUT - jika permintaan tidak dapat ditangani secara tepat waktu
  • API_NOT_CONNECTED - jika API tidak tersedia (artinya, modul UpgradeParty belum siap)
  • NETWORK_ERROR - permintaan tidak dapat ditangani karena terjadi error jaringan
  • DEVELOPER_ERROR - paket panggilan tidak diizinkan untuk mengakses UpgradeParty API

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