'הזמנה לשדרוג' הוא תהליך משתמש שמציג את התכונות החדשות העיקריות שכלולות בשדרוג הנוכחי של מערכת Android OS.
התהליך נועד לעזור לשכנע את המשתמשים לשדרג את המכשיר לגרסת מערכת ההפעלה העדכנית ביותר.
כשיש עדכון מערכת הפעלה במכשיר שממתין לאישור המשתמש, המשתמשים מקבלים התראה ב-push עם פירוט התכונות החדשות והזמנה לבצע את השדרוג.
כדי להפעיל הזמנה לשדרוג ל-Android OS, צריך להירשם באמצעות טופס ההזמנה לשדרוג Android.
התאמה אישית של חוויית ההזמנה לשדרוג
אפשר להתאים אישית את החוויה של הזמנת השדרוג בדרכים הבאות:
- מסירים תכונות לא רלוונטיות.
- מעדכנים את השפה בקטעי הטקסט.
- משנים את האנימציות, הצבעים והגופנים כך שיתאימו למותג.
כדי להתאים אישית את התהליך, כדאי לעיין בהנחיות שמפורטות במדריך הסגנון של הזמנות לשדרוג ולכלול את פרטי ההתאמה האישית בטופס הבקשה להפעלת ההזמנה לשדרוג ל-Android.
מדריך סגנון ההזמנה לשדרוג
בעזרת מדריך הסגנון הזה תוכלו לשנות את המראה של ההזמנה לשדרוג כך שיתאים למותג שלכם (מסכים, צבעים, גופנים). מומלץ מאוד לשמור על גדלים ומבנה דומים לעיצוב המקורי.
תהליך ההזמנה לשדרוג כולל את שלושת הרכיבים הבאים:
- מסך הפתיחה
- מסך התכונות
- מחוץ למסך
אנימציה בכל מסך עוזרת להסביר כל תכונה.
מסך הפתיחה
מסך הפתיחה מכיל אנימציה קצרה שמקבלת את פני המשתמש ומעודדת אותו להתחיל בתהליך שמוצג במסך הפתיחה.
פריסה
האנימציה במכשיר כוללת תמיד:
- רקע לבן וצורות צבעוניות
- מסגרת של מכשיר
- תוכן ממשק המשתמש
עיצוב
אם בוחרים להתאים את הסגנון ל-Material You, אפשר להשתמש בצבעים ובצורות שמוגדרים כברירת מחדל בדוגמה.
אם אתם משתמשים בצבע מותג משלכם, חשוב לוודא שהוא משתלב היטב עם הרקע של ממשק המשתמש.
תנועה
אפשרות 1: עם שעון במסך הבית
- המספרים מופיעים במסך.
- המספרים זזים למרכז תוך כדי הקטנתם. מסגרת הטלפון הנייד מופיעה.
- הטלפון קטן יותר. הצורות מתחילות להופיע במסך.
- האנימציה הושלמה. הצורות ממשיכות לנוע בעדינות.
אפשרות 2: אין שעון במסך הבית
- הטלפון הנייד נכנס למסך.
- הטלפון עובר למרכז ומגדיל את הגודל שלו. הצורות מתחילות להיכנס למסך.
- הטלפון מגיע לגודל המקסימלי והצורות ממשיכות לזוז.
מסך התכונות
בכל מסך תכונות מודגשת תכונה במערכת ההפעלה החדשה.
פריסה
אנימציית המכשיר תמיד מורכבת מהפרטים הבאים:
- רקע צבעוני
- מסגרת המכשיר
- תוכן ממשק המשתמש
עיצוב
- בוחרים צבע רקע שמתאים לתוכן של ממשק המשתמש ולמראה הכללי.
- במסכים, מגדירים גדלים של גופנים שקל לקרוא אותם. אם צריך, מגדירים גדלי גופן גדולים יותר.
תנועה
מתעדים אנימציה של התהליך של כל תכונה, כולל אינטראקציות מגע. מייצאים את ההקלטות כקובצי Lottie.
מחוץ למסך
מסך הסיום משלים את התהליך. הוא מציין למשתמשים שהם עברו את כל המסכים.
פריסה
אנימציית המכשיר תמיד מורכבת מהפרטים הבאים:
- חצי עיגול על הרקע (וגם צורות מונפשות)
- מסגרת המכשיר
- תוכן ממשק המשתמש
עיצוב
- בוחרים צבע רקע שמתאים לתוכן של ממשק המשתמש ולמראה הכללי.
- משתמשים בצורה של חצי עיגול.
תנועה
פועלים לפי התהליך הרגיל של אנימציה במסך הסיום:
- הטלפון הנייד זז מעט למעלה.
- עיגול מופיע ברקע.
- צורות מופיעות מאחורי הטלפון הנייד.
- הצורות ממריאות מהרקע כמו קונפטי.
בדיקת תהליך ההזמנה לשדרוג
- במכשיר Android, עוברים אל: הגדרות > Google > ניפוי באגים של מסיבת השדרוג.
- מכינים את הטריגר להזמנה לשדרוג עבור מערכת ההפעלה הרלוונטית של המכשיר (בהתאם לגרסה הנוכחית של מערכת ההפעלה ולתהליך הספציפי של ההזמנה לשדרוג שרוצים לבדוק). אחת משתי האפשרויות:
- לוחצים על Write Fake upgrade (current version). (לדוגמה, אם אתם משתמשים ב-Android 13, תופעל תהליך הבדיקה של Android 13)
- לוחצים על Write pending upgrade (current version + 1). (לדוגמה, אם אתם משתמשים ב-Android 12 OS, תופעל תהליך הבדיקה של Android 13).
- לוחצים על דיווח על שדרוג של מערכת ההפעלה.
- לוחצים על ההתראה שהתקבלה או על פתיחת ההזמנה לשדרוג.
אפשרויות הפעלה להזמנה לשדרוג
יש 3 דרכים שונות להפעיל את תהליך ההזמנה לשדרוג: 1. אוטומטית 2. שידור לכל המשתמשים 3. ה-SDK של Play Services הופעל
אוטומטי – התראה שמופעלת על ידי Google (למכשירים פועלים של gOTA בלבד)
במכשירי OEM עם gOTA, השילוב הוא אוטומטי ולא נדרשים שלבי שילוב של הזמנת שדרוג. כשהמערכת תזהה שדרוג משמעותי של מערכת ההפעלה בהמתנה, תישלח התראה מהמכשיר מ-Google Play Services, שתובילה לתהליך ההזמנה לשדרוג.
Android Broadcast – הודעה שמופעלת על ידי Google (מומלץ)
שידור אפליקציה הוא הדרך הפשוטה והמומלצת ביותר לשלב את תהליך ההזמנה לשדרוג.
באמצעות מקלט שידור אפשר להפעיל את תהליך ההזמנה לשדרוג מהאפליקציה באמצעות הודעת שידור. בשידור נשלחת התראה למכשיר מ-Google Play Services, שמובילה לתהליך ההזמנה לשדרוג.
דרישות מוקדמות לשידור
כדי להכין את האפליקציה, מבצעים את השלבים שמפורטים בקטעים הבאים.
ודאו שבקבצי התצורה של האפליקציה נעשה שימוש בערכים הבאים:
- minSdkVersion בגרסה 14 ואילך
- גרסת compileSdkVersion של 28 ואילך
- הרשאה של 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
הוא מספר שלם שמציין את גרסת מערכת ההפעלה הממתינה (בדוגמה הזו, גרסת 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;
}
הפונקציה מחזירה משימה שמבצעת אימות אסינכררוני כדי לבדוק אם המשתמש עומד בדרישות לקבלת הזמנה לשדרוג. הערך הבוליאני שמתקבל מציין אם המשתמש עומד בדרישות או לא.
invokeUpgradeInvite
Task<Void> invokeUpgradeInvite();
הפעלה של הפעילות 'הזמנה לשדרוג'. האובייקט _Task _שמתקבל מציין אם אירעה שגיאה בהתחלת הפעילות.
קודי שגיאה
שתי ה-methods של ה-API עלולות להיכשל, למעט מסוג com.google.android.gms.common.api.Apiחריג. במקרים כאלה, מבצע הקריאה החוזרת אמור לנסות שוב במועד מאוחר יותר. קודי סטטוס נפוצים צפויים:
- 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);
}
});
}