Undangan Peningkatan Android

Undangan Pemutakhiran adalah alur pengguna yang menampilkan fitur-fitur baru utama yang disertakan dalam pemutakhiran OS Android utama yang tersedia saat ini.

Alur tersebut dimaksudkan untuk membantu meyakinkan pengguna agar mengupgrade perangkatnya ke versi OS terbaru.

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

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

Sesuaikan pengalaman Peningkatan Undangan

Anda dapat menyesuaikan pengalaman Peningkatan Undangan dengan cara berikut:

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

Untuk menyesuaikan alurnya, tinjau pedoman dalam Panduan Gaya Undangan Peningkatan dan sertakan informasi penyesuaian Anda dalam formulir Permintaan untuk mengaktifkan Undangan Peningkatan Android .

Tingkatkan Panduan Gaya Undangan

Gunakan panduan gaya ini untuk mengubah tampilan Upgrade Invite agar sesuai dengan merek Anda (layar, warna, font). Kami sangat menyarankan untuk menjaga ukuran dan struktur tetap dekat dengan desain aslinya.

Alur Peningkatan Undangan menampilkan tiga komponen berikut:

  • Layar pengantar
  • Layar fitur
  • Layar luar
Gambar 1. Tiga jenis layar dalam alur undangan peningkatan

Animasi di setiap layar membantu menjelaskan setiap fitur.

Layar pengantar

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

Tata Letak
Gambar 2. Tata letak wireframe untuk layar intro Upgrade Invite

Animasi perangkat selalu terdiri dari:

  • Latar belakang putih dan bentuk berwarna-warni
  • Bingkai perangkat
  • konten UI
Penataan gaya

Jika Anda memilih untuk mengadaptasi gaya Material You , Anda dapat menggunakan warna dan bentuk default yang ditunjukkan pada contoh.

Gambar 3. Skema warna default untuk alur Peningkatan Undangan.

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

Gerakan

Opsi 1: Dengan jam di layar beranda

  1. Angka masuk ke layar.
  2. Angka berpindah ke tengah sambil mengecil ukurannya. Bingkai ponsel muncul.
  3. Ukuran ponsel mengecil. Bentuknya mulai memasuki layar.
  4. Animasi selesai. Bentuknya terus bergerak dengan lembut.
Gambar 4. Tata letak wireframe untuk animasi layar intro Upgrade Invite dengan jam.
Gambar 5. Contoh animasi layar intro dengan jam.

Opsi 2: Tidak ada jam di layar beranda

  1. Ponsel memasuki layar.
  2. Ponsel bergerak ke tengah sambil memperbesar ukurannya. Bentuknya mulai memasuki layar.
  3. Ponsel mencapai ukuran maksimum dan bentuknya terus bergerak.
Gambar 6. Layout wireframe untuk animasi layar intro Upgrade Invite tanpa jam.
Gambar 7. Contoh animasi layar intro tanpa jam.

Layar fitur

Setiap layar fitur menyoroti fitur di OS baru.

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

Animasi perangkat selalu terdiri dari:

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

Rekam animasi alur setiap fitur, termasuk interaksi sentuhan. Ekspor rekaman sebagai file Lottie .

Layar luar

Layar outro melengkapi alurnya. Ini menunjukkan kepada pengguna bahwa mereka telah melewati semua layar.

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

Animasi perangkat selalu terdiri dari:

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

Ikuti alur animasi layar outro standar:

  1. Ponselnya bergerak naik sedikit.
  2. Sebuah lingkaran muncul di latar belakang.
  3. Bentuk muncul dari belakang ponsel.
  4. Bentuknya terbang keluar dari latar belakang seperti confetti.
Gambar 10. Tata letak wireframe untuk animasi layar outro Upgrade Invite.
Gambar 11. Contoh animasi layar outro.

Uji Alur Undangan Peningkatan

  1. Di perangkat Android, buka: Setelan > Google > Debug Pihak Peningkatan .
  2. Siapkan pemicu untuk Undangan Peningkatan untuk OS perangkat yang relevan (bergantung pada versi OS Anda saat ini, dan alur Undangan Peningkatan khusus yang akan diuji. Salah satu dari:
    1. Klik Tulis Peningkatan palsu (versi saat ini) . (misalnya, jika Anda menjalankan OS Android 13, hal ini akan memicu alur pengujian Android 13)
    2. Klik Tulis peningkatan yang tertunda (versi saat ini + 1) . (misalnya, jika Anda menjalankan OS Android 12, hal ini akan memicu alur pengujian Android 13)
    3. Klik Laporkan peningkatan OS
  3. Klik pemberitahuan yang diterima, atau klik Buka Undangan Peningkatan.

Opsi pemicu untuk Undangan Peningkatan

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

Otomatis - Notifikasi yang dipicu Google (hanya untuk perangkat yang menjalankan gOTA)

Untuk perangkat OEM yang menjalankan gOTA, integrasi dilakukan secara otomatis dan tidak diperlukan langkah integrasi Undangan Peningkatan. Setelah upgrade OS besar yang tertunda terdeteksi, pemberitahuan push akan dikirimkan ke perangkat dari layanan Google Play, yang mengarah ke alur Undangan Peningkatan.

Android Broadcast - Google memicu notifikasi (Disarankan)

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

Penerima siaran memungkinkan Anda memicu aliran Undangan Peningkatan dari aplikasi Anda menggunakan pesan siaran. Siaran mengirimkan pemberitahuan push ke perangkat dari layanan Google Play, yang mengarah ke aliran Undangan Peningkatan.

Prasyarat Siaran

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

Pastikan file konfigurasi aplikasi Anda menggunakan nilai berikut:

  • MinSdkVersion 14 atau lebih tinggi
  • CompileSdkVersion 28 atau lebih tinggi
  • Penggunaan Izin dari android.permission.RECOVERY

Kirim Siaran

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

  1. Kirim siaran dengan aksi.

    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 Peningkatan Undangan juga memungkinkan pengguna melakukan peningkatan OS langsung dari alur tersebut.

Agar hal ini berfungsi, tampilkan niat khusus yang dapat dipanggil Google dari alur Undangan Peningkatan yang memicu pengunduhan pembaruan.

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 Integer yang menunjukkan versi OS yang tertunda (dalam contoh ini, versi Android yang akan diinstal adalah 14). Ini digunakan untuk menentukan alur Upgrade Invite mana yang akan dipicu.

Play Services SDK - hanya pemicu aliran

SDK pihak ketiga memungkinkan Anda memicu alur Peningkatan Undangan dari aplikasi atau notifikasi OTA Anda sendiri. Gunakan API eksternal pihak ketiga untuk mengaktifkan alur Peningkatan Undangan itu sendiri. Cara ini kurang disarankan.

Prasyarat

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

Pastikan file build aplikasi Anda menggunakan nilai berikut:

  • MinSdkVersion 14 atau lebih tinggi
  • CompileSdkVersion 28 atau lebih tinggi

Konfigurasikan aplikasi Anda

Untuk mengonfigurasi aplikasi Anda:

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

gudang. 2. Tambahkan dependensi untuk Google Growth SDK ke file Gradle tingkat 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 pustaka 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 menginisialisasi klien, gunakan kelas UpgradeParty:

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

fungsi API

UpgradePartyClient yang dihasilkan memperlihatkan fungsionalitas 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;
}

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

panggilUpgradeInvite

Task<Void> invokeUpgradeInvite();

Memanggil Aktivitas Undangan Peningkatan. _Task _object yang dihasilkan menunjukkan apakah terjadi kesalahan saat memulai aktivitas.

Kode Kesalahan

Kedua metode API mungkin gagal dengan pengecualian tipe com.google.android.gms.common.api.ApiException . Dalam kasus seperti ini, penelepon diharapkan untuk mencoba lagi di lain waktu. Kode status umum yang diharapkan ) meliputi:

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

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