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

裝置動畫一律包含:
- 白色背景和彩色形狀
- 裝置外框
- UI 內容
樣式
如果選擇採用 Material You 樣式,可以使用範例中顯示的預設顏色和形狀。
如果使用自己的品牌顏色,請確認該顏色與使用者介面背景相襯。
動作
方法 1:透過主畫面上的時鐘
- 數字進入畫面。
- 數字會移至中心,並縮小。系統會顯示手機框架。
- 手機會縮小,形狀開始進入畫面。
- 動畫已完成。形狀會持續輕輕移動。
|
|
方法 2:主畫面沒有時鐘
- 手機進入畫面。
- 手機移至中央,並放大尺寸。形狀開始進入畫面。
- 手機達到最大尺寸,形狀會持續移動。
|
|
功能畫面
每個功能畫面都會強調新 OS 的一項功能。
版面配置
裝置動畫一律包含:
- 彩色背景
- 裝置邊框
- UI 內容
樣式
- 選擇與 UI 內容和整體外觀相符的背景顏色。
- 在畫面中設定容易辨識的字型大小。視需要設定較大的字型大小。
動作
錄製每個功能的流程動畫,包括觸控互動。 將錄製內容匯出為 Lottie 檔案。
結尾畫面
結尾畫面會完成整個流程。向使用者表示他們已瀏覽所有畫面。
版面配置
裝置動畫一律包含:
- 背景上的半圓形 (加上動畫形狀)
- 裝置邊框
- UI 內容
樣式
- 選取與 UI 內容和整體外觀相符的背景顏色。
- 使用半圓形。
動作
按照標準結尾畫面動畫流程操作:
- 手機稍微向上移動。
- 背景會顯示圓圈。
- 手機後方出現各種形狀。
- 形狀會像五彩碎紙一樣從背景飛出。
|
|
測試升級邀請流程
- 在 Android 裝置上,依序前往「設定」>「Google」>「升級派對偵錯」。
- 準備相關裝置作業系統的升級邀請觸發條件 (視目前的作業系統版本而定,以及要測試的特定升級邀請流程)。執行以下其中一項:
- 按一下「Write Fake upgrade (current version)」(寫入假的升級 (目前版本))。(舉例來說,如果您執行 Android 13 作業系統,系統會觸發 Android 13 測試流程)
- 按一下「Write pending upgrade (current version + 1)」(寫入待處理的升級 (目前版本 + 1))。(舉例來說,如果您執行 Android 12 作業系統,系統會觸發 Android 13 測試流程)
- 按一下「回報 OS 升級」
- 按一下收到的通知,或按一下「開啟升級邀請」。
升級邀請的觸發選項
觸發升級邀請流程的方式有 3 種: 1. 自動 2. 廣播 3. 觸發 Play 服務 SDK
自動 - Google 觸發的通知 (僅適用於執行 gOTA 的裝置)
如果 OEM 裝置執行 gOTA,系統會自動整合,因此不需要執行「升級邀請」整合步驟。系統偵測到有待處理的重大 OS 升級時,Google Play 服務會傳送推播通知到裝置,引導使用者完成升級邀請流程。
Android Broadcast - Google 觸發的通知 (建議)
應用程式播送是整合升級邀請流程最簡單且建議使用的方式。
廣播接收器可讓您使用廣播訊息,從應用程式觸發升級邀請流程。Google Play 服務會將推播通知傳送至裝置,引導使用者完成升級邀請流程。
廣播的必要條件
如要讓應用程式做好準備,請完成下列各節的步驟。
請確認應用程式的設定檔為下列值:
- minSdkVersion 為 14 以上版本
- compileSdkVersion 為 28 以上版本
- 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 鍵的值是整數,表示待處理的 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 物件。
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 - if the request couldn't be handled in a timely manner
- 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);
}
});
}