升級邀請是一個使用者流程,展示目前可用的主要 Android 作業系統升級中包含的關鍵新功能。
該流程旨在幫助說服用戶將其設備升級到最新的作業系統版本。
一旦裝置的作業系統升級等待用戶批准,用戶就會收到一條推播通知,顯示新功能並邀請他們執行升級。
若要為您的 Android 作業系統啟用升級邀請,請使用「請求啟動 Android 升級邀請」表單進行註冊。
自訂升級邀請體驗
您可以透過以下方式自訂升級邀請體驗:
- 刪除不相關的功能。
- 更新文字區塊中的語言。
- 修改動畫、顏色和字體以配合您的品牌。
若要自訂流程,請查看升級邀請樣式指南中的指南,並在請求啟動 Android 升級邀請表單中包含您的自訂資訊。
升級邀請風格指南
使用此風格指南修改升級邀請外觀以適合您自己的品牌(螢幕、顏色、字體)。我們強烈建議保持尺寸和結構接近原始設計。
升級邀請流程包含以下三個組成部分:
- 介紹畫面
- 特色畫面
- 片尾畫面
每個螢幕上的動畫有助於解釋每個功能。
介紹畫面
介紹畫麵包含一個簡短的動畫,歡迎使用者並鼓勵他們開始介紹螢幕上顯示的流程。
佈局
設備動畫始終包含:
- 白色背景和彩色形狀
- 設備框架
- 使用者介面內容
造型
如果您選擇調整Material You樣式,則可以使用範例中顯示的預設顏色和形狀。
如果您使用自己的品牌顏色,請確保它與 UI 背景配合良好。
運動
選項 1:在主畫面上顯示時鐘
- 數字進入螢幕。
- 數字向中心移動,同時尺寸縮小。出現手機邊框。
- 手機尺寸變小。形狀開始進入螢幕。
- 動畫完成。形狀不斷輕輕移動。
選項 2:主螢幕上沒有時鐘
- 手機進入畫面。
- 手機向中心移動,同時尺寸增大。形狀開始進入螢幕。
- 手機達到最大尺寸,形狀不斷移動。
特色畫面
每個功能畫面都會突出顯示新作業系統中的一個功能。
佈局
設備動畫始終包含:
- 多彩背景
- 設備框架
- 使用者介面內容
造型
- 選擇與 UI 內容和整體外觀相符的背景顏色。
- 在螢幕內,設定易於辨認的字體大小。如果需要,請設定更大的字體大小。
運動
記錄每個功能流程的動畫,包括觸控互動。將錄音匯出為Lottie 檔。
片尾畫面
結尾畫面完成了流程。它向用戶表明他們已經瀏覽了所有螢幕。
佈局
設備動畫始終包含:
- 背景上的半圓(加上動畫形狀)
- 設備框架
- 使用者介面內容
造型
- 選擇與 UI 內容和整體外觀相符的背景顏色。
- 使用半圓形。
運動
遵循標準的片尾螢幕動畫流程:
- 手機向上移動了一點。
- 背景出現一個圓圈。
- 形狀從手機後面出現。
- 這些形狀像五彩紙屑一樣從背景中飛出。
測試升級邀請流程
- 在 Android 裝置上,前往:設定 > Google > Upgrade Party debug 。
- 為相關裝置作業系統準備升級邀請觸發器(取決於您目前的作業系統版本以及要測試的特定升級邀請流程。以下任一方法:
- 按一下“寫入假升級(目前版本)” 。 (例如,如果您執行 Android 13 作業系統,這將觸發 Android 13 測試流程)
- 按一下寫入待升級(目前版本 + 1) 。 (例如,如果您執行 Android 12 作業系統,這將觸發 Android 13 測試流程)
- 點選報告作業系統升級
- 點選收到的通知,或點選開啟升級邀請。
升級邀請的觸發選項
有 3 種不同的方式觸發升級邀請流程: 1. 自動 2. 廣播 3. Play Services SDK 觸發
自動 - Google 觸發通知(僅適用於運行 gOTA 的裝置)
對於運行 gOTA 的 OEM 設備,整合是自動的,不需要升級邀請整合步驟。一旦偵測到待處理的主要作業系統升級,就會從 Google Play 服務向裝置發送推播通知,從而進入升級邀請流程。
Android Broadcast - Google 觸發通知(推薦)
應用程式廣播是整合升級邀請流程的最簡單且推薦的方式。
廣播接收器可讓您使用廣播訊息從應用程式觸發升級邀請流程。該廣播從 Google Play 服務向裝置發送推播通知,導致升級邀請流程。
廣播先決條件
要準備您的應用程序,請完成以下部分中的步驟。
確保您的應用程式的設定檔使用以下值:
- minSdkVersion 為 14 或更高
- 28 或更高的compileSdkVersion
- android.permission.RECOVERY的usesPermission
發送廣播
請參閱下面有關 OEM 應用程式(或程式碼)發送 Android 廣播以觸發推播通知的說明:
隨動作發送廣播。
com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE
將
com.google.android.gms
套件加入廣播中。com.google.android.gms
其他要求
升級邀請流程還允許使用者直接從流程中執行作業系統升級。
為此,請公開 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
鍵的值是一個整數,表示待處理的作業系統版本(在本例中,要安裝的 Android 版本是 14)。這用於確定將觸發哪個升級邀請流程。
Play 服務 SDK - 僅串流觸發
第三方 SDK 可讓您從您的應用程式或您自己的 OTA 通知觸發升級邀請流程。使用第三方外部 API 啟動升級邀請流程本身。這種方法不太推薦。
先決條件
要準備您的應用程序,請完成以下部分中的步驟。
確保您的應用程式的建置檔案使用以下值:
- minSdkVersion 為 14 或更高
- 28 或更高的compileSdkVersion
配置您的應用程式
要配置您的應用程式:
1. Extract the library from the provided .zip file, and place it in your
儲存庫。 2. 將 Google Growth SDK 的依賴項加入模組的應用程式層級Gradle檔案中,通常為app/build.gradle
:
dependencies {
implementation files('<PATH_TO_BINARY>/play-services-growth-16.1.0-eap04.aar')
}
若要提供客戶端的依賴項,請包含下列程式庫:
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初始化
若要初始化客戶端,請使用 UpgradeParty 類別:
import com.google.android.gms.growth.UpgradeParty; UpgradeParty.getClient(activity);
Activity 參數應該是啟動 Activity 物件。
API函數
產生的 UpgradePartyClient 公開以下功能。
是否有資格升等邀請
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;
}
傳回一個非同步驗證使用者是否有資格獲得升級邀請的任務。產生的布林值指示使用者是否符合資格。
調用升級邀請
Task<Void> invokeUpgradeInvite();
調用升級邀請活動。產生的 _Task _object 指示啟動活動時是否發生錯誤。
錯誤代碼
這兩種 API 方法都可能會失敗,並出現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);
}
});
}