คำเชิญให้อัปเกรด Android

คำเชิญอัปเกรดคือโฟลว์ผู้ใช้ที่แสดงฟีเจอร์ใหม่ที่สำคัญซึ่งรวมอยู่ในการอัปเกรดระบบปฏิบัติการ Android ครั้งใหญ่ที่มีให้บริการในปัจจุบัน

ขั้นตอนนี้มีไว้เพื่อโน้มน้าวให้ผู้ใช้อัปเกรดอุปกรณ์เป็นระบบปฏิบัติการเวอร์ชันล่าสุด

เมื่ออุปกรณ์มีการอัปเกรดระบบปฏิบัติการที่รอการอนุมัติจากผู้ใช้ ผู้ใช้จะได้รับข้อความ Push ที่แสดงฟีเจอร์ใหม่และเชิญให้ทำการอัปเกรด

หากต้องการเปิดใช้คำเชิญให้อัปเกรดสำหรับระบบปฏิบัติการ Android ให้ลงทะเบียนโดยใช้แบบฟอร์มคำขอเปิดใช้งานคำเชิญให้อัปเกรด Android

ปรับแต่งประสบการณ์การเชิญอัปเกรด

คุณปรับแต่งประสบการณ์การเชิญให้อัปเกรดได้ด้วยวิธีต่อไปนี้

  • นำฟีเจอร์ที่ไม่เกี่ยวข้องออก
  • อัปเดตภาษาในบล็อกข้อความ
  • แก้ไขภาพเคลื่อนไหว สี และแบบอักษรให้เข้ากับแบรนด์ของคุณ

หากต้องการปรับแต่งขั้นตอน ให้อ่านหลักเกณฑ์ในคู่มือสไตล์คำเชิญให้อัปเกรด และใส่ข้อมูลการปรับแต่งในแบบฟอร์มคำขอเปิดใช้งานคำเชิญให้อัปเกรด Android

คู่มือแนะนำสไตล์คำเชิญให้อัปเกรด

ใช้คู่มือสไตล์นี้เพื่อแก้ไขรูปลักษณ์ของคำเชิญให้อัปเกรดให้เหมาะกับแบรนด์ของคุณเอง (หน้าจอ สี แบบอักษร) เราขอแนะนําอย่างยิ่งให้คงขนาดและโครงสร้างให้ใกล้เคียงกับการออกแบบเดิม

ขั้นตอนการเชิญให้อัปเกรดประกอบด้วย 3 องค์ประกอบต่อไปนี้

  • หน้าจอแนะนำ
  • หน้าจอฟีเจอร์
  • หน้าจอปิดท้าย
รูปที่ 1 หน้าจอ 3 ประเภทในขั้นตอนการเชิญให้อัปเกรด

ภาพเคลื่อนไหวในแต่ละหน้าจอจะช่วยอธิบายฟีเจอร์แต่ละรายการ

หน้าจอแนะนำ

หน้าจอแนะนำมีภาพเคลื่อนไหวสั้นๆ ที่ต้อนรับผู้ใช้และกระตุ้นให้ผู้ใช้เริ่มขั้นตอนที่แสดงในหน้าจอแนะนำ

เลย์เอาต์
รูปที่ 2 เลย์เอาต์ภาพร่างสำหรับหน้าจอแนะนำคำเชิญให้อัปเกรด

ภาพเคลื่อนไหวในอุปกรณ์จะประกอบไปด้วยสิ่งต่อไปนี้เสมอ

  • พื้นหลังสีขาวและรูปร่างหลากสี
  • เฟรมอุปกรณ์
  • เนื้อหา UI
การจัดรูปแบบ

หากเลือกปรับเปลี่ยนการจัดรูปแบบMaterial You คุณจะใช้สีและรูปร่างเริ่มต้นที่แสดงในตัวอย่างได้

รูปที่ 3 รูปแบบสีเริ่มต้นสำหรับขั้นตอนการเชิญให้อัปเกรด

หากคุณใช้สีของแบรนด์ของคุณเอง ให้ตรวจสอบว่าสีนั้นทำงานได้ดีกับพื้นหลัง UI

การเคลื่อนไหว

ตัวเลือกที่ 1: แสดงนาฬิกาบนหน้าจอหลัก

  1. ตัวเลขจะปรากฏบนหน้าจอ
  2. ตัวเลขจะย้ายไปอยู่ตรงกลางขณะที่ขนาดลดลง เฟรมโทรศัพท์มือถือจะปรากฏขึ้น
  3. โทรศัพท์ลดขนาดลง รูปร่างเริ่มปรากฏบนหน้าจอ
  4. ภาพเคลื่อนไหวเสร็จสมบูรณ์แล้ว รูปทรงจะเคลื่อนไหวช้าๆ ต่อไป
รูปที่ 4 เลย์เอาต์ภาพร่างสำหรับคำเชิญให้อัปเกรด ภาพเคลื่อนไหวของหน้าจอแนะนำที่มีนาฬิกา
รูปที่ 5 ตัวอย่างภาพเคลื่อนไหวสำหรับหน้าจอแนะนำที่มีนาฬิกา

ตัวเลือกที่ 2: ไม่มีนาฬิกาบนหน้าจอหลัก

  1. โทรศัพท์มือถือปรากฏขึ้นบนหน้าจอ
  2. โทรศัพท์จะย้ายไปอยู่ตรงกลางขณะที่ขยายขนาดขึ้น รูปร่างเริ่มเข้าสู่หน้าจอ
  3. โทรศัพท์มีขนาดถึงขีดจํากัดสูงสุดแล้ว แต่รูปร่างยังคงเคลื่อนไหว
รูปที่ 6 เลย์เอาต์ภาพร่างสำหรับคำเชิญให้อัปเกรด ภาพเคลื่อนไหวของหน้าจอแนะนำที่ไม่มีนาฬิกา
รูปที่ 7 ตัวอย่างภาพเคลื่อนไหวสำหรับหน้าจอแนะนำแบบไม่มีนาฬิกา

หน้าจอฟีเจอร์

หน้าจอฟีเจอร์แต่ละหน้าจอจะไฮไลต์ฟีเจอร์ในระบบปฏิบัติการใหม่

เลย์เอาต์
รูปที่ 8 เลย์เอาต์ภาพร่างสำหรับหน้าจอฟีเจอร์คำเชิญให้อัปเกรด

ภาพเคลื่อนไหวในอุปกรณ์จะประกอบไปด้วยสิ่งต่อไปนี้เสมอ

  • พื้นหลังสีสันสดใส
  • เฟรมของอุปกรณ์
  • เนื้อหา UI
การจัดรูปแบบ
  • เลือกสีพื้นหลังที่เข้ากับเนื้อหา UI และลักษณะทั่วไป
  • ในหน้าจอ ให้กำหนดขนาดแบบอักษรที่อ่านได้ง่าย ตั้งค่าแบบอักษรให้ใหญ่ขึ้น หากจําเป็น
การเคลื่อนไหว

บันทึกภาพเคลื่อนไหวของการไหลเวียนของแต่ละฟีเจอร์ รวมถึงการโต้ตอบการสัมผัส ส่งออกไฟล์บันทึกเป็นไฟล์ Lottie

หน้าจอปิดท้าย

หน้าจอปิดท้ายจะจบขั้นตอน ป้ายนี้บอกให้ผู้ใช้ทราบว่า พวกเขาได้ดูจนจบทุกหน้าจอ

เลย์เอาต์
รูปที่ 9 เลย์เอาต์ภาพร่างสำหรับหน้าจอปิดท้ายของคำเชิญให้อัปเกรด

ภาพเคลื่อนไหวของอุปกรณ์ประกอบด้วยส่วนต่อไปนี้เสมอ

  • ครึ่งวงกลมบนพื้นหลัง (รวมรูปทรงที่เคลื่อนไหวได้)
  • เฟรมของอุปกรณ์
  • เนื้อหา UI
การจัดแต่ง
  • เลือกสีพื้นหลังที่เข้ากับเนื้อหา UI และลักษณะทั่วไป
  • ใช้รูปร่างครึ่งวงกลม
การเคลื่อนไหว

ทำตามโฟลว์ของภาพเคลื่อนไหวนอกหน้าจอแบบมาตรฐาน

  1. โทรศัพท์มือถือขยับขึ้นเล็กน้อย
  2. วงกลมจะปรากฏขึ้นในพื้นหลัง
  3. รูปทรงปรากฏขึ้นจากด้านหลังโทรศัพท์มือถือ
  4. รูปร่างจะโผล่ออกมาจากพื้นหลังเหมือนลูกปา
รูปที่ 10 เลย์เอาต์แบบไวร์เฟรมสำหรับภาพเคลื่อนไหวที่อยู่ด้านนอกหน้าจอคำเชิญอัปเกรด
รูปที่ 11 ตัวอย่างภาพเคลื่อนไหวของหน้าจอปิดท้าย

ทดสอบขั้นตอนการเชิญให้อัปเกรด

  1. ในอุปกรณ์ Android ให้ไปที่การตั้งค่า > Google > การแก้ไขข้อบกพร่องของปาร์ตี้อัปเกรด
  2. เตรียมทริกเกอร์สำหรับคำเชิญให้อัปเกรดสำหรับระบบปฏิบัติการของอุปกรณ์ที่เกี่ยวข้อง (ขึ้นอยู่กับเวอร์ชันระบบปฏิบัติการปัจจุบันและขั้นตอนการทดสอบคำเชิญให้อัปเกรดที่เฉพาะเจาะจง) โดยทำอย่างใดอย่างหนึ่งต่อไปนี้
    1. คลิกเขียนการอัปเกรดจำลอง (เวอร์ชันปัจจุบัน) (เช่น หากคุณใช้ระบบปฏิบัติการ Android 13 ระบบจะเรียกใช้ขั้นตอนการทดสอบ Android 13)
    2. คลิกเขียนการอัปเกรดที่รอดำเนินการ (เวอร์ชันปัจจุบัน + 1) (เช่น หากคุณใช้ระบบปฏิบัติการ Android 12 การดำเนินการนี้จะเรียกใช้ขั้นตอนการทดสอบของ Android 13)
    3. คลิกรายงานการอัปเกรดระบบปฏิบัติการ
  3. คลิกการแจ้งเตือนที่ได้รับ หรือคลิกเปิดคําเชิญให้อัปเกรด

ตัวเลือกทริกเกอร์สำหรับการเชิญให้อัปเกรด

การเปิดใช้งานขั้นตอนการเชิญให้อัปเกรดทำได้ 3 วิธี ดังนี้ 1. อัตโนมัติ 2. ออกอากาศ 3. SDK บริการ Google Play เรียกให้แสดง

อัตโนมัติ - การแจ้งเตือนที่ Google เรียกใช้ (สำหรับอุปกรณ์ที่ใช้ gOTA เท่านั้น)

สำหรับอุปกรณ์ OEM ที่ใช้ gOTA การผสานรวมจะทำงานโดยอัตโนมัติและไม่จำเป็นต้องทำตามขั้นตอนการผสานรวม "อัปเกรด" "เชิญ" เมื่อตรวจพบการอัปเกรดระบบปฏิบัติการหลักที่รอดำเนินการ ระบบจะส่งข้อความ Push จากบริการ Google Play ไปยังอุปกรณ์ ซึ่งจะนำไปสู่ขั้นตอนการเชิญให้อัปเกรด

Android Broadcast - การแจ้งเตือนที่ Google ทริกเกอร์ (แนะนํา)

การออกอากาศของแอปเป็นวิธีที่ง่ายที่สุดและแนะนําในการผสานรวมขั้นตอนการอัปเกรดและเชิญ

ตัวรับการออกอากาศช่วยให้คุณเรียกใช้ขั้นตอนการเชิญให้อัปเกรดจากแอปได้โดยใช้ข้อความการออกอากาศ การออกอากาศจะส่งข้อความ Push ไปยังอุปกรณ์จากบริการ Google Play ซึ่งจะนำไปสู่ขั้นตอนการเชิญให้อัปเกรด

ข้อกำหนดเบื้องต้นในการออกอากาศ

หากต้องการเตรียมแอป ให้ทําตามขั้นตอนในส่วนต่อไปนี้

ตรวจสอบว่าไฟล์การกําหนดค่าของแอปใช้ค่าต่อไปนี้

  • minSdkVersion 14 ขึ้นไป
  • compileSdkVersion เป็น 28 ขึ้นไป
  • usesPermission ของ android.permission.RECOVERY

ส่งประกาศ

ดูวิธีการด้านล่างสำหรับแอป OEM (หรือโค้ด) ในการส่งการออกอากาศ Android เพื่อทริกเกอร์ข้อความ Push

  1. ส่งการออกอากาศพร้อมการดำเนินการ

    com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE
    
  2. เพิ่มแพ็กเกจ com.google.android.gms ในการออกอากาศ

    com.google.android.gms
    

ข้อกำหนดเพิ่มเติม

ขั้นตอนคำเชิญให้อัปเกรดยังช่วยให้ผู้ใช้อัปเกรดระบบปฏิบัติการได้โดยตรงจากขั้นตอนดังกล่าว

หากต้องการให้การดำเนินการนี้ทำงาน ให้แสดง Intent ที่กําหนดเองซึ่ง Google สามารถเรียกใช้จากขั้นตอนคำเชิญให้อัปเกรดที่ทริกเกอร์การดาวน์โหลดการอัปเดต

ตัวอย่างการใช้การประกาศ

ดูตัวอย่างการเผยแพร่ของแอปพลิเคชันต่อไปนี้

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

ค่าของคีย์ EXTRA_PENDING_ANDROID_OS_VERSION_NUMBER คือ Integer ที่ระบุเวอร์ชันระบบปฏิบัติการที่รอดำเนินการ (ในตัวอย่างนี้ เวอร์ชัน Android ที่ติดตั้งคือ 14) ซึ่งจะใช้เพื่อกำหนดว่าระบบจะเรียกใช้ขั้นตอนการเชิญให้อัปเกรดแบบใด

Play Services SDK - การทริกเกอร์ขั้นตอนเท่านั้น

SDK ของบุคคลที่สามช่วยให้คุณเรียกใช้ขั้นตอนการเชิญอัปเกรดจากแอปหรือการแจ้งเตือน OTA ของคุณเองได้ ใช้ API ภายนอกของบุคคลที่สามเพื่อเปิดใช้งาน ขั้นตอนการเชิญอัปเกรดด้วยตัวเอง เราไม่แนะนำให้ใช้วิธีนี้

สิ่งที่ต้องมีก่อน

หากต้องการเตรียมแอป ให้ทําตามขั้นตอนในส่วนต่อไปนี้

ตรวจสอบว่าไฟล์บิลด์ของแอปใช้ค่าต่อไปนี้

  • minSdkVersion 14 ขึ้นไป
  • compileSdkVersion เป็น 28 ขึ้นไป

กำหนดค่าแอป

วิธีกำหนดค่าแอป

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

ที่เก็บ 2. เพิ่มทรัพยากร Dependency สำหรับ Google Growth SDK ลงในไฟล์ Gradle ระดับแอปของโมดูล ซึ่งโดยปกติจะเป็น app/build.gradle

   dependencies {
    implementation files('<PATH_TO_BINARY>/play-services-growth-16.1.0-eap04.aar')
   }
  1. หากต้องการระบุทรัพยากร Dependency ของลูกค้า ให้รวมไลบรารีต่อไปนี้

    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

  1. หากต้องการเริ่มต้นไคลเอ็นต์ ให้ใช้คลาส UpgradeParty ดังนี้

    import com.google.android.gms.growth.UpgradeParty;
    UpgradeParty.getClient(activity);
    
  2. พารามิเตอร์กิจกรรมควรเป็นออบเจ็กต์กิจกรรมเริ่มต้น

ฟังก์ชัน API

UpgradePartyClient ที่เป็นผลลัพธ์จะแสดงฟังก์ชันต่อไปนี้

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

แสดงผลงานที่ตรวจสอบแบบไม่พร้อมกันว่าผู้ใช้มีสิทธิ์รับคำเชิญให้อัปเกรดหรือไม่ ค่าบูลีนที่ได้จะระบุว่าผู้ใช้มีสิทธิ์หรือไม่

invokeUpgradeInvite

Task<Void> invokeUpgradeInvite();

เรียกใช้กิจกรรมคำเชิญให้อัปเกรด ออบเจ็กต์ _Task _ ที่ได้จะระบุว่าเกิดข้อผิดพลาดเมื่อเริ่มกิจกรรมหรือไม่

รหัสข้อผิดพลาด

เมธอด API ทั้ง 2 รายการอาจดำเนินการไม่สำเร็จโดยมีข้อยกเว้นประเภท com.google.android.gms.common.api.ApiException ในกรณีเช่นนี้ ผู้โทรจะต้องลองอีกครั้งในภายหลัง รหัสสถานะทั่วไปที่คาดไว้) รวมถึง

  • INTERNAL_ERROR - สำหรับข้อผิดพลาดในขั้นตอนของตรรกะพื้นฐาน
  • TIMEOUT - หากจัดการคำขอไม่ทันเวลา
  • API_NOT_CONNECTED - เมื่อ API ไม่พร้อมใช้งาน (โมดูล UpgradeParty ยังไม่พร้อมใช้งาน)
  • NETWORK_ERROR - จัดการคําขอไม่ได้เนื่องจากข้อผิดพลาดของเครือข่าย
  • DEVELOPER_ERROR - แพ็กเกจที่เรียกใช้ไม่ได้รับอนุญาตให้เข้าถึง UpgradeParty API

ตัวอย่างการใช้งาน 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);
             }
           });
   }