Lời mời nâng cấp Android

Lời mời nâng cấp là một quy trình người dùng giới thiệu các tính năng mới chính có trong bản nâng cấp chính hiện có của Hệ điều hành Android.

Quy trình này nhằm giúp thuyết phục người dùng nâng cấp thiết bị lên phiên bản hệ điều hành mới nhất.

Khi một thiết bị có bản nâng cấp hệ điều hành đang chờ người dùng phê duyệt, người dùng sẽ nhận được thông báo đẩy hiển thị các tính năng mới và mời họ nâng cấp.

Để bật Lời mời nâng cấp cho hệ điều hành Android, hãy đăng ký bằng Biểu mẫu yêu cầu kích hoạt Lời mời nâng cấp Android.

Tuỳ chỉnh trải nghiệm Gửi lời mời nâng cấp

Bạn có thể tuỳ chỉnh trải nghiệm Gửi lời mời nâng cấp theo các cách sau:

  • Xoá các tính năng không liên quan.
  • Cập nhật ngôn ngữ trong khối văn bản.
  • Sửa đổi ảnh động, màu sắc và phông chữ cho phù hợp với thương hiệu của bạn.

Để tuỳ chỉnh quy trình, hãy xem lại các nguyên tắc trong Hướng dẫn về kiểu lời mời nâng cấp và đưa thông tin tuỳ chỉnh của bạn vào Biểu mẫu yêu cầu kích hoạt lời mời nâng cấp Android.

Hướng dẫn về kiểu lời mời nâng cấp

Hãy làm theo hướng dẫn về quy tắc này để sửa đổi hình thức của Lời mời nâng cấp cho phù hợp với thương hiệu của riêng bạn (màn hình, màu sắc, phông chữ). Bạn nên giữ kích thước và cấu trúc gần giống với thiết kế ban đầu.

Quy trình Gửi lời mời nâng cấp có 3 thành phần sau:

  • Màn hình giới thiệu
  • Màn hình tính năng
  • Màn hình kết thúc
Hình 1. Ba loại màn hình trong luồng lời mời nâng cấp

Ảnh động trên mỗi màn hình giúp giải thích từng tính năng.

Màn hình giới thiệu

Màn hình giới thiệu chứa một ảnh động ngắn chào mừng người dùng và khuyến khích họ bắt đầu luồng hiện trên màn hình giới thiệu.

Bố cục
Hình 2. Bố cục sơ đồ khung cho màn hình giới thiệu lời mời nâng cấp

Ảnh động của thiết bị luôn bao gồm:

  • Nền trắng và các hình dạng đầy màu sắc
  • Khung thiết bị
  • Nội dung giao diện người dùng
Tạo kiểu

Nếu chọn điều chỉnh kiểu Material You, bạn có thể sử dụng màu sắc và hình dạng mặc định như trong ví dụ.

Hình 3. Bảng phối màu mặc định cho quy trình Lời mời nâng cấp.

Nếu bạn sử dụng màu thương hiệu của riêng mình, hãy đảm bảo rằng màu đó phù hợp với nền giao diện người dùng.

Chuyển động

Lựa chọn 1: Có đồng hồ trên màn hình chính

  1. Các số sẽ xuất hiện trên màn hình.
  2. Các con số di chuyển vào giữa trong khi giảm kích thước. Khung điện thoại di động sẽ xuất hiện.
  3. Kích thước điện thoại giảm. Các hình dạng bắt đầu xuất hiện trên màn hình.
  4. Ảnh động đã hoàn tất. Các hình dạng liên tục di chuyển nhẹ nhàng.
Hình 4. Bố cục khung dây cho ảnh động màn hình giới thiệu của lời mời nâng cấp có đồng hồ.
Hình 5. Ảnh động mẫu cho màn hình giới thiệu với một chiếc đồng hồ.

Cách 2: Không có đồng hồ trên màn hình chính

  1. Điện thoại di động xuất hiện trên màn hình.
  2. Điện thoại di chuyển vào giữa trong khi tăng kích thước. Các hình dạng bắt đầu nhập vào màn hình.
  3. Điện thoại đạt đến kích thước tối đa và các hình dạng tiếp tục di chuyển.
Hình 6. Bố cục khung dây cho ảnh động màn hình giới thiệu của lời mời nâng cấp không có đồng hồ.
Hình 7. Ảnh động mẫu cho màn hình giới thiệu không có đồng hồ.

Màn hình tính năng

Mỗi màn hình tính năng sẽ làm nổi bật một tính năng trong hệ điều hành mới.

Bố cục
Hình 8. Bố cục khung dây cho các màn hình của tính năng Lời mời nâng cấp.

Ảnh động trên thiết bị luôn bao gồm:

  • Nền đầy màu sắc
  • Khung thiết bị
  • Nội dung giao diện người dùng
Tạo kiểu
  • Chọn màu nền phù hợp với nội dung giao diện người dùng và giao diện tổng thể.
  • Bên trong màn hình, hãy đặt cỡ chữ dễ đọc. Nếu cần, hãy đặt cỡ chữ lớn hơn.
Chuyển động

Ghi lại ảnh động của luồng của từng tính năng, bao gồm cả các hoạt động tương tác bằng thao tác chạm. Xuất bản ghi dưới dạng tệp Lottie.

Màn hình ngoài

Màn hình kết thúc sẽ hoàn tất luồng. Nó cho người dùng biết rằng họ đã xem qua tất cả màn hình.

Bố cục
Hình 9. Bố cục khung dây cho màn hình kết thúc của lời mời nâng cấp.

Ảnh động của thiết bị luôn bao gồm:

  • Hình bán nguyệt trên nền (cùng với các hình dạng động)
  • Khung thiết bị
  • Nội dung giao diện người dùng
Tạo kiểu
  • Chọn màu nền phù hợp với nội dung giao diện người dùng và giao diện tổng thể.
  • Sử dụng hình bán nguyệt.
Chuyển động

Làm theo quy trình ảnh động tiêu chuẩn cho màn hình kết thúc:

  1. Điện thoại di động di chuyển lên một chút.
  2. Một vòng tròn sẽ xuất hiện ở chế độ nền.
  3. Hình dạng hiện ra ở phía sau chiếc điện thoại di động.
  4. Các hình dạng bay ra khỏi nền như hoa giấy.
Hình 10. Bố cục khung xương cho ảnh động trên màn hình Mời nâng cấp.
Hình 11. Ví dụ về ảnh động kết thúc màn hình.

Kiểm thử quy trình lời mời nâng cấp

  1. Trên thiết bị Android, hãy chuyển đến phần: Cài đặt > Google > Gỡ lỗi cho bên nâng cấp.
  2. Chuẩn bị điều kiện kích hoạt cho Lời mời nâng cấp cho hệ điều hành thiết bị có liên quan (tuỳ thuộc vào phiên bản hệ điều hành hiện tại và quy trình Lời mời nâng cấp cụ thể để kiểm thử. Hoặc:
    1. Nhấp vào Write Fake upgrade (current version) (Ghi nội dung nâng cấp giả mạo (phiên bản hiện tại)). (ví dụ: nếu bạn chạy hệ điều hành Android 13, thao tác này sẽ kích hoạt quy trình kiểm thử Android 13)
    2. Nhấp vào Write pending upgrade (current version + 1) (Ghi bản nâng cấp đang chờ xử lý (phiên bản hiện tại + 1)). (ví dụ: nếu bạn chạy hệ điều hành Android 12, thì điều này sẽ kích hoạt quy trình kiểm thử Android 13)
    3. Nhấp vào Báo cáo bản nâng cấp hệ điều hành
  3. Nhấp vào thông báo đã nhận hoặc nhấp vào Mở lời mời nâng cấp.

Các lựa chọn điều kiện kích hoạt cho Lời mời nâng cấp

Có 3 cách để kích hoạt quy trình Gửi lời mời nâng cấp: 1. tự động 2. truyền tin rộng rãi 3. SDK Dịch vụ Play được kích hoạt

Tự động – Thông báo do Google kích hoạt (chỉ dành cho các thiết bị chạy gOTA)

Đối với các thiết bị OEM chạy gOTA, quá trình tích hợp sẽ diễn ra tự động và bạn không cần thực hiện bước tích hợp Lời mời nâng cấp nào. Khi phát hiện một bản nâng cấp hệ điều hành lớn đang chờ xử lý, hệ thống sẽ gửi thông báo đẩy đến thiết bị từ các dịch vụ của Google Play, dẫn đến quy trình Gửi lời mời nâng cấp.

Android Broadcast – Thông báo được Google kích hoạt (Khuyên dùng)

Thông báo truyền tin ứng dụng là cách đơn giản nhất và được đề xuất để tích hợp quy trình Gửi lời mời nâng cấp.

Broadcast receiver giúp bạn kích hoạt quy trình Lời mời nâng cấp trong ứng dụng bằng cách sử dụng thông báo truyền tin. Thông báo truyền tin sẽ gửi thông báo đẩy đến thiết bị từ Dịch vụ Google Play, dẫn đến quy trình Gửi lời mời nâng cấp.

Điều kiện tiên quyết để được phát sóng

Để chuẩn bị cho ứng dụng của bạn, hãy hoàn tất các bước trong những phần sau.

Đảm bảo rằng các tệp cấu hình của ứng dụng sử dụng các giá trị sau:

  • minSdkVersion từ 14 trở lên
  • compileSdkVersion phiên bản 28 trở lên
  • Một usesPermission của android.permission.RECOVERY

Gửi thông báo

Hãy xem hướng dẫn bên dưới dành cho ứng dụng (hoặc mã) của OEM (Nhà sản xuất thiết bị gốc) để gửi thông báo truyền tin cho Android nhằm kích hoạt thông báo đẩy:

  1. Gửi thông báo truyền tin bằng thao tác.

    com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE
    
  2. Thêm gói com.google.android.gms vào thông báo truyền tin.

    com.google.android.gms
    

Yêu cầu khác

Quy trình Lời mời nâng cấp cũng cho phép người dùng nâng cấp hệ điều hành ngay trong quy trình.

Để tính năng này hoạt động, hãy hiển thị một ý định tuỳ chỉnh mà Google có thể gọi từ quy trình Lời mời nâng cấp để kích hoạt việc tải bản cập nhật xuống.

Ví dụ về cách sử dụng tính năng truyền tin

Hãy xem ví dụ sau đây về thông báo truyền tin của ứng dụng:

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

Giá trị của khoá EXTRA_PENDING_ANDROID_OS_VERSION_NUMBER là một Số nguyên cho biết phiên bản hệ điều hành đang chờ xử lý (trong ví dụ này, phiên bản Android cần cài đặt là 14). Thông tin này được dùng để xác định quy trình Gửi lời mời nâng cấp sẽ được kích hoạt.

SDK Dịch vụ Play – chỉ kích hoạt quy trình

SDK bên thứ ba cho phép bạn kích hoạt quy trình Mời nâng cấp từ ứng dụng hoặc thông báo OTA của riêng bạn. Sử dụng API bên ngoài của bên thứ ba để tự kích hoạt luồng lời mời nâng cấp. Bạn nên sử dụng phương pháp này.

Điều kiện tiên quyết

Để chuẩn bị cho ứng dụng của bạn, hãy hoàn tất các bước trong những phần sau.

Hãy đảm bảo tệp bản dựng của ứng dụng sử dụng các giá trị sau:

  • minSdkVersion từ 14 trở lên
  • compileSdkVersion phiên bản 28 trở lên

Định cấu hình ứng dụng

Cách định cấu hình ứng dụng:

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

kho lưu trữ. 2. Thêm các phần phụ thuộc cho SDK Google Growth vào tệp Gradle ở cấp ứng dụng trong mô-đun của bạn, thường là app/build.gradle:

   dependencies {
    implementation files('<PATH_TO_BINARY>/play-services-growth-16.1.0-eap04.aar')
   }
  1. Để cung cấp các phần phụ thuộc của ứng dụng, hãy thêm các thư viện sau:

    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
    

Khởi chạy API

  1. Để khởi tạo ứng dụng, hãy sử dụng lớp UpgradeParty:

    import com.google.android.gms.growth.UpgradeParty;
    UpgradeParty.getClient(activity);
    
  2. Tham số hoạt động phải là đối tượng Hoạt động khởi tạo.

Hàm API

UpgradePartyClient thu được sẽ cho thấy chức năng sau.

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

Trả về một Tác vụ xác minh không đồng bộ xem người dùng có đủ điều kiện nhận lời mời nâng cấp hay không. Giá trị boolean thu được cho biết người dùng có đủ điều kiện hay không.

invokeUpgradeInvite

Task<Void> invokeUpgradeInvite();

Gọi Hoạt động mời nâng cấp. Đối tượng _Task _ kết quả cho biết liệu có lỗi xảy ra khi bắt đầu hoạt động hay không.

Mã lỗi

Cả hai phương thức API đều có thể không thành công với một ngoại lệ thuộc loại com.google.android.gms.common.api.ApiException. Trong những trường hợp như vậy, phương thức gọi dự kiến sẽ thử lại sau. Các mã trạng thái phổ biến dự kiến bao gồm:

  • INTERNAL_ERROR – đối với mọi lỗi trong luồng logic cơ bản
  • TIMEOUT – nếu không thể xử lý yêu cầu kịp thời
  • API_NOT_CONNECTED – khi API không có sẵn (tức là mô-đun UpgradeParty chưa sẵn sàng)
  • NETWORK_ERROR – không thể xử lý yêu cầu do lỗi mạng
  • DEVELOPER_ERROR – gói gọi không được phép truy cập vào API UpgradeParty

Ví dụ về cách sử dụng 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);
             }
           });
   }