升級邀請是一種使用者流程,可展示目前可用的 Android 作業系統主要升級版本中提供的主要新功能。
這項流程旨在說服使用者將裝置升級至最新的 OS 版本。
當裝置有待使用者核准的作業系統升級時,使用者會收到推播通知,顯示新功能並邀請他們執行升級。
裝置製造商可以提交這份表單,為其 Android OS 裝置啟用升級派對功能。
自訂邀請升級體驗
您可以透過下列方式自訂升級邀請體驗:
- 移除不相關的功能。
- 更新文字區塊中的語言。
- 修改動畫、顏色和字型,配合您的品牌風格。
如要自訂流程,請參閱「升級邀請樣式指南」中的規範,並在表單回覆中加入自訂資訊。
升級邀請格式指南
您可以使用這份樣式指南,修改升級邀請的外觀,以符合自家品牌的風格 (螢幕、顏色、字型)。強烈建議您將大小和結構保持與原始設計相近。
升級邀請流程包含以下三個部分:
- 簡介畫面
- 功能畫面
- Outro 畫面
每個畫面上都有動畫,可協助說明各項功能。
簡介畫面
簡介畫面包含簡短的動畫,歡迎使用者並鼓勵他們開始在簡介畫面中顯示的流程。
版面配置

裝置動畫一律包含:
- 白色背景和多彩形狀
- 裝置框架
- UI 內容
樣式
如果您選擇採用 Material You 樣式,可以使用範例中顯示的預設顏色和形狀。

如果您使用自家品牌顏色,請確保該顏色與 UI 背景搭配良好。
動作
選項 1:主畫面上有時鐘
- 畫面上會顯示數字。
- 數字會移至中央並縮小。手機框架會隨即顯示。
- 手機尺寸縮小。形狀開始進入畫面。
- 動畫已完成。形狀會持續緩慢移動。
![]() |
![]() |
選項 2:主畫面上沒有時鐘
- 手機進入畫面。
- 手機會移動到中央並放大。形狀開始進入畫面。
- 手機達到最大尺寸,形狀持續移動。
![]() |
![]() |
功能畫面
每個功能畫面都會強調新作業系統中的某項功能。
版面配置

裝置動畫一律包含:
- 色彩繽紛的背景
- 裝置邊框
- UI 內容
樣式
- 選擇與 UI 內容和一般外觀搭配良好的背景顏色。
- 在螢幕上設定易於辨識的字型大小。視需要設定較大的字型大小。
動作
記錄每個功能的流程動畫,包括觸控互動。將錄製內容匯出為 Lottie 檔案。
Outro 畫面
結尾畫面則完成流程。這會向使用者指出他們已瀏覽過所有畫面。
版面配置

裝置動畫一律包含:
- 背景上的半圓形 (加上動畫形狀)
- 裝置邊框
- UI 內容
樣式
- 請選取與 UI 內容和一般外觀搭配良好的背景顏色。
- 使用半圓形。
動作
請按照標準結尾畫面動畫流程操作:
- 手機會稍微往上移動。
- 背景會顯示圓圈。
- 手機背後出現形狀。
- 形狀會像五彩碎紙般從背景飛出。
![]() |
![]() |
測試升級邀請流程
- 在 Android 裝置上依序前往「設定」>「Google」>「Upgrade Party 偵錯」。
- 為相關裝置作業系統準備升級邀請的觸發條件 (取決於目前的 OS 版本,以及要測試的特定升級邀請流程)。以下任一項:
- 按一下「Write Fake upgrade (current version)」。(例如,如果您執行 Android 13 OS,這會觸發 Android 13 測試流程)
- 按一下「Write pending upgrade (current version + 1)」。(例如,如果您執行 Android 12 OS,這會觸發 Android 13 測試流程)
- 按一下「回報 OS 升級」
- 點選收到的通知,或點選「開啟升級邀請」。
升級邀請的觸發條件選項
觸發升級邀請流程有 3 種方式: 1. 自動 2. 廣播 3. 觸發 Play 服務 SDK
自動 - Google 觸發通知 (僅適用於執行 gOTA 的裝置)
如果是執行 gOTA 的 OEM 裝置,系統會自動整合,不需要執行升級邀請整合步驟。偵測到待處理的主要 OS 升級後,Google Play 服務就會透過推播通知傳送至裝置,並引導至升級邀請流程。
Android 廣播 - Google 觸發通知 (建議)
應用程式廣播是整合升級邀請流程最簡單且建議的方式。
廣播接收器可讓您使用廣播訊息,從應用程式觸發升級邀請流程。廣播會透過 Google Play 服務,將推播通知傳送至裝置,進而啟動邀請升級流程。
廣播必備條件
如要讓應用程式做好準備,請完成下列各節的步驟。
請確認應用程式的設定檔使用下列值:
- minSdkVersion 為 14 以上
- compileSdkVersion 為 28 以上
- usesPermission 的 android.permission.RECOVERY
傳送廣播
請參閱下方的操作說明,瞭解如何透過 OEM 應用程式 (或程式碼) 傳送 Android 廣播訊息,觸發推播通知:
傳送含有動作的廣播訊息。
com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE
將
com.google.android.gms
套件新增至廣播。com.google.android.gms
補充規定
升級邀請流程也能讓使用者直接從流程中執行 OS 升級。
為使這項功能運作,請公開自訂意圖,讓 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
鍵的值是整數,表示待安裝的 OS 版本 (在本例中,要安裝的 Android 版本為 14)。這項屬性可用於決定要觸發哪個升級邀請流程。
Play 服務 SDK - 僅觸發流程
第三方 SDK 可讓您透過應用程式或自己的 OTA 通知觸發升級邀請流程。使用第三方外部 API 啟用升級邀請流程本身。我們不太建議使用這個方法。
必要條件
如要讓應用程式做好準備,請完成下列各節的步驟。
請確認應用程式的版本檔案使用下列的值:
- minSdkVersion 為 14 以上
- compileSdkVersion 為 28 以上
設定應用程式
如要設定應用程式,請按照下列步驟操作:
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 會公開下列功能。
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;
}
傳回 Task,以非同步方式驗證使用者是否符合升級邀請資格。產生的布林值會指出使用者是否符合資格。
invokeUpgradeInvite
Task<Void> invokeUpgradeInvite();
叫用升級邀請活動。產生的 _Task _ 物件會指出啟動活動時是否發生錯誤。
錯誤程式碼
這兩種 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);
}
});
}