ההזמנה לשדרוג היא תהליך שבו מוצגים למשתמשים התכונות החדשות העיקריות שכלולות בשדרוג הנוכחי של מערכת ההפעלה Android.
התהליך הזה נועד לשכנע את המשתמשים לשדרג את המכשיר שלהם לגרסה העדכנית של מערכת ההפעלה.
אם יש עדכון למערכת ההפעלה שממתין לאישור המשתמש במכשיר, המשתמשים מקבלים הודעת פוש עם התכונות החדשות והזמנה לבצע את העדכון.
יצרני מכשירים יכולים להפעיל את התכונה 'מסיבת שדרוג' במכשירי Android OS שלהם באמצעות שליחת הטופס 'בקשה להפעלת ההזמנה לשדרוג Android'.
התאמה אישית של חוויית ההזמנה לשדרוג
אפשר להתאים אישית את חוויית ההזמנה לשדרוג בדרכים הבאות:
- מסירים תכונות לא רלוונטיות.
- מעדכנים את השפה בבלוקים של הטקסט.
- משנים את האנימציות, הצבעים והגופנים כך שיתאימו למותג.
כדי להתאים אישית את התהליך, מומלץ לעיין בהנחיות שבמדריך הסגנון לשדרוג ההזמנה ולכלול את פרטי ההתאמה האישית בתשובה לטופס.
שדרוג מדריך הסגנון של ההזמנה
אפשר להשתמש במדריך הסגנון הזה כדי לשנות את המראה של ההזמנה לשדרוג כך שיתאים למותג שלכם (מסכים, צבעים, גופנים). מומלץ מאוד לשמור על הגדלים ועל המבנה של העיצוב המקורי.
תהליך השדרוג כולל את שלושת הרכיבים הבאים:
- מסך הפתיחה
- מסך התכונות
- מסך סיום
אנימציה בכל מסך עוזרת להסביר כל תכונה.
מסך הפתיחה
מסך הפתיחה מכיל אנימציה קצרה שמקבלת את פני המשתמש ומעודדת אותו להתחיל את התהליך שמוצג במסך הפתיחה.
פריסה
אנימציית המכשיר תמיד כוללת:
- רקע לבן וצורות צבעוניות
- מסגרת מכשיר
- תוכן ממשק המשתמש
עיצוב
אם בוחרים להתאים את העיצוב של Material You, אפשר להשתמש בצבעים ובצורות שמופיעים בדוגמה.
אם אתם משתמשים בצבע המותג שלכם, חשוב לוודא שהוא מתאים לרקע של ממשק המשתמש.
נסיעה, תנועה
אפשרות 1: עם שעון במסך הבית
- מספרים נכנסים למסך.
- המספרים עוברים למרכז וגודלם קטן. יופיע מסגרת של טלפון נייד.
- הטלפון הולך וקטן. הצורות מתחילות להיכנס למסך.
- האנימציה מסתיימת. הצורות ממשיכות לנוע בעדינות.
|
|
אפשרות 2: אין שעון במסך הבית
- הטלפון הנייד נכנס למסך.
- הטלפון זז למרכז וגדל. הצורות מתחילות להיכנס למסך.
- הטלפון מגיע לגודל המקסימלי והצורות ממשיכות לנוע.
|
|
מסך התכונות
בכל מסך של תכונה מודגשת תכונה במערכת ההפעלה החדשה.
פריסה
אנימציית המכשיר תמיד כוללת:
- רקע צבעוני
- מסגרת המכשיר
- תוכן ממשק המשתמש
עיצוב
- צריך לבחור צבע רקע שמשתלב היטב עם התוכן של ממשק המשתמש ועם המראה הכללי.
- בתוך המסכים, מגדירים גדלים של גופנים שקל לקרוא. אם צריך, מגדירים גודל גופן גדול יותר.
נסיעה, תנועה
מצלמים אנימציה של התהליך של כל תכונה, כולל אינטראקציות של מגע. מייצאים את ההקלטות כקובצי Lottie.
מסך סיום
מסך הסיום משלים את התהליך. ההודעה הזו מציינת למשתמשים שהם עברו את כל המסכים.
פריסה
אנימציית המכשיר תמיד כוללת:
- חצי עיגול ברקע (בתוספת צורות עם אנימציה)
- מסגרת המכשיר
- תוכן ממשק המשתמש
עיצוב
- בוחרים צבע רקע שמשתלב היטב עם התוכן של ממשק המשתמש ועם המראה הכללי.
- משתמשים בצורה של חצי עיגול.
נסיעה, תנועה
פועלים לפי תהליך האנימציה הרגיל של מסך הסיום:
- הטלפון הנייד זז קצת למעלה.
- עיגול מופיע ברקע.
- צורות מופיעות מאחורי הטלפון הנייד.
- הצורות עפות מהרקע כמו קונפטי.
|
|
בדיקת זרימת ההזמנה לשדרוג
- במכשיר Android, עוברים אל: הגדרות > Google > ניפוי באגים של שדרוג.
- הכנת הטריגר להזמנה לשדרוג עבור מערכת ההפעלה הרלוונטית במכשיר (בהתאם לגרסה הנוכחית של מערכת ההפעלה ולזרימת ההזמנה הספציפית לשדרוג שרוצים לבדוק). אחת משתי האפשרויות:
- לוחצים על Write Fake upgrade (current version) (כתיבת שדרוג מזויף (הגרסה הנוכחית)). (לדוגמה, אם מריצים את מערכת ההפעלה Android 13, יופעל תהליך הבדיקה של Android 13)
- לוחצים על Write pending upgrade (current version + 1) (כתיבת שדרוג בהמתנה (הגרסה הנוכחית + 1)). (לדוגמה, אם מריצים מערכת הפעלה Android 12, יופעל תהליך הבדיקה של Android 13)
- לוחצים על דיווח על שדרוג מערכת ההפעלה.
- לוחצים על ההתראה שהתקבלה או על פתיחת ההזמנה לשדרוג.
אפשרויות להפעלת ההזמנה לשדרוג
יש 3 דרכים שונות להפעלת תהליך השדרוג: 1. אוטומטי 2. שידור 3. הופעל Play Services SDK
אוטומטי – התראה שהופעלה על ידי Google (רק למכשירים שמופעלת בהם gOTA)
במכשירי OEM שמופעלת בהם gOTA, ההטמעה מתבצעת באופן אוטומטי ולא נדרשים שלבים להטמעת הזמנה לשדרוג. אם מזוהה שדרוג משמעותי של מערכת ההפעלה שממתין לאישור, תישלח למכשיר הודעת פוש מ-Google Play Services, שתפנה את המשתמשים לתהליך של הזמנה לשדרוג.
שידור ב-Android – התראה שהופעלה על ידי Google (מומלץ)
שידור באפליקציה הוא הדרך הפשוטה והמומלצת לשילוב תהליך השדרוג.
מקלט שידור מאפשר לכם להפעיל את תהליך השדרוג של ההזמנה מהאפליקציה באמצעות הודעת שידור. השידור שולח התראה בדחיפה למכשיר מ-Google Play Services, ומוביל לתהליך של הזמנה לשדרוג.
דרישות מוקדמות לשידור
כדי להכין את האפליקציה, פועלים לפי השלבים בקטעים הבאים.
צריך לוודא שבקובצי ההגדרות של האפליקציה נעשה שימוש בערכים הבאים:
- 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
דרישות נוספות
תהליך ההזמנה לשדרוג מאפשר למשתמשים גם לשדרג את מערכת ההפעלה ישירות מתוך התהליך.
כדי שהפעולה הזו תפעל, צריך לחשוף כוונה מותאמת אישית ש-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 חיצוני של צד שלישי כדי להפעיל את תהליך השדרוג עצמו. השיטה הזו פחות מומלצת.
דרישות מוקדמות
כדי להכין את האפליקציה, פועלים לפי השלבים בקטעים הבאים.
מוודאים שקובץ ה-build של האפליקציה משתמש בערכים הבאים:
- 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);פרמטר הפעילות צריך להיות אובייקט הפעילות שיוזם את הפעולה.
פונקציות 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);
}
});
}