دعوت به ارتقا، یک جریان کاربری است که ویژگیهای کلیدی جدید موجود در بهروزرسانی اصلی فعلی سیستم عامل اندروید را نمایش میدهد.
این جریان برای متقاعد کردن کاربران جهت ارتقاء دستگاه خود به آخرین نسخه سیستم عامل در نظر گرفته شده است.
به محض اینکه ارتقاء سیستم عامل دستگاه در انتظار تأیید کاربر باشد، کاربران یک اعلان فوری دریافت میکنند که ویژگیهای جدید را نمایش میدهد و از آنها دعوت میکند تا ارتقاء را انجام دهند.
تولیدکنندگان دستگاه میتوانند با ارسال فرم «درخواست فعالسازی دعوتنامه ارتقاء اندروید» ، قابلیت «مهمانی ارتقاء» را برای دستگاههای دارای سیستم عامل اندروید خود فعال کنند.
تجربه دعوت ارتقا را سفارشی کنید
شما میتوانید تجربه دعوت به ارتقا را به روشهای زیر سفارشی کنید:
- ویژگیهای نامرتبط را حذف کنید.
- زبان را در بلوکهای متنی بهروزرسانی کنید.
- انیمیشنها، رنگها و فونتها را متناسب با برند خود تغییر دهید.
برای سفارشیسازی جریان، دستورالعملهای موجود در راهنمای سبک دعوت ارتقا را مرور کنید و اطلاعات سفارشیسازی خود را در پاسخ فرم وارد کنید.
راهنمای سبک دعوت ارتقا
از این راهنمای سبک برای تغییر ظاهر دعوتنامه ارتقاء متناسب با برند خود (صفحه نمایش، رنگ، فونت) استفاده کنید. اکیداً توصیه میکنیم اندازهها و ساختار را نزدیک به طرح اصلی نگه دارید.
جریان دعوت به ارتقاء شامل سه جزء زیر است:
- صفحه نمایش مقدمه
- صفحه نمایش ویژگی
- صفحه نمایش بیرونی
یک انیمیشن در هر صفحه به توضیح هر ویژگی کمک میکند.
صفحه نمایش مقدمه
صفحه مقدمه شامل یک انیمیشن کوتاه است که به کاربر خوشامد میگوید و او را تشویق میکند تا روند نمایش داده شده در صفحه مقدمه را آغاز کند.
طرح بندی

انیمیشن دستگاه همیشه شامل موارد زیر است:
- زمینه سفید و اشکال رنگارنگ
- قاب دستگاه
- محتوای رابط کاربری
استایل
اگر تصمیم دارید سبکبندی Material You را تطبیق دهید، میتوانید از رنگها و شکلهای پیشفرض نشان داده شده در مثال استفاده کنید.

اگر از رنگ برند خودتان استفاده میکنید، مطمئن شوید که با پسزمینه رابط کاربری به خوبی هماهنگ باشد.
حرکت
گزینه ۱: با یک ساعت در صفحه اصلی
- اعداد وارد صفحه نمایش میشوند.
- اعداد در حالی که اندازهشان کوچک میشود به مرکز حرکت میکنند. قاب تلفن همراه ظاهر میشود.
- اندازه گوشی کوچک میشود. شکلها شروع به ورود به صفحه نمایش میکنند.
- انیمیشن کامل شد. شکلها به آرامی حرکت میکنند.
![]() | ![]() |
گزینه ۲: عدم نمایش ساعت در صفحه اصلی
- تلفن همراه وارد صفحه نمایش میشود.
- گوشی در حالی که اندازهاش افزایش مییابد به مرکز حرکت میکند. شکلها شروع به ورود به صفحه میکنند.
- گوشی به حداکثر اندازه خود میرسد و شکلها همچنان در حال حرکت هستند.
![]() | ![]() |
صفحه نمایش ویژگی
هر صفحه ویژگی، یک ویژگی در سیستم عامل جدید را برجسته میکند.
طرح بندی

انیمیشن دستگاه همیشه شامل موارد زیر است:
- پس زمینه رنگارنگ
- قاب دستگاه
- محتوای رابط کاربری
استایل
- یک رنگ پسزمینه انتخاب کنید که با محتوای رابط کاربری و ظاهر کلی آن به خوبی هماهنگ باشد.
- در داخل صفحات نمایش، اندازه فونتها را طوری تنظیم کنید که به راحتی قابل خواندن باشند. در صورت نیاز، اندازه فونتها را بزرگتر تنظیم کنید.
حرکت
یک انیمیشن از جریان هر ویژگی، شامل تعاملات لمسی، ضبط کنید. فایلهای ضبط شده را به صورت فایلهای Lottie صادر کنید.
صفحه نمایش بیرونی
صفحهی پایانی، جریان را کامل میکند. این صفحه به کاربران نشان میدهد که تمام صفحات را پشت سر گذاشتهاند.
طرح بندی

انیمیشن دستگاه همیشه شامل موارد زیر است:
- نیم دایره روی پسزمینه (بهعلاوه اشکال متحرک)
- قاب دستگاه
- محتوای رابط کاربری
استایل
- یک رنگ پسزمینه انتخاب کنید که با محتوای رابط کاربری و ظاهر کلی آن به خوبی هماهنگ باشد.
- از شکل نیم دایره استفاده کنید.
حرکت
جریان انیمیشن استاندارد صفحه نمایش بیرونی را دنبال کنید:
- تلفن همراه کمی بالاتر میرود.
- یک دایره در پس زمینه ظاهر می شود.
- شکلهایی از پشت تلفن همراه بالا میآیند.
- شکلها مانند کاغذ رنگی از پسزمینه به بیرون پرتاب میشوند.
![]() | ![]() |
جریان دعوت به ارتقاء را آزمایش کنید
- در دستگاه اندروید، به تنظیمات > گوگل > اشکالزدایی ارتقاء گروه بروید.
- تریگر (راهانداز) دعوت به ارتقاء را برای سیستم عامل دستگاه مربوطه (بسته به نسخه سیستم عامل فعلی شما و جریان خاص دعوت به ارتقاء برای آزمایش) آماده کنید. یکی از دو روش زیر را انجام دهید:
- روی «نوشتن ارتقاء جعلی (نسخه فعلی)» کلیک کنید. (برای مثال، اگر سیستم عامل اندروید ۱۳ را اجرا میکنید، این کار جریان آزمایش اندروید ۱۳ را آغاز میکند)
- روی «نوشتن در انتظار ارتقا (نسخه فعلی + ۱)» کلیک کنید. (برای مثال، اگر سیستم عامل اندروید ۱۲ را اجرا میکنید، این باعث شروع جریان تست اندروید ۱۳ میشود)
- روی گزارش ارتقاء سیستم عامل کلیک کنید
- یا روی اعلان دریافتی کلیک کنید، یا روی «باز کردن دعوت به ارتقاء» کلیک کنید.
گزینههای فعالسازی برای دعوت به ارتقاء
سه راه مختلف برای فعال کردن جریان دعوت به ارتقا وجود دارد: ۱. خودکار ۲. پخش ۳. فعال شدن کیت توسعه نرمافزار Play Services
خودکار - اعلان فعالشده توسط گوگل (فقط برای دستگاههای دارای gOTA)
For OEM devices that run gOTA, integration is automatic and no Upgrade Invite integration steps are required. Once a pending major OS upgrade is detected, this will send a push notification to the device from Google Play services, leading to the Upgrade Invite flow.
پخش اندروید - اعلان فعالشده توسط گوگل (توصیهشده)
پخش برنامه، سادهترین و توصیهشدهترین روش برای ادغام جریان دعوت به ارتقاء است.
A broadcast receiver enables you to trigger the Upgrade Invite flow from your app using a broadcast message. The broadcast sends a push notification to the device from Google Play services, leading to the Upgrade Invite flow.
پیشنیازهای پخش
برای آمادهسازی برنامه خود، مراحل بخشهای زیر را تکمیل کنید.
مطمئن شوید که فایلهای پیکربندی برنامه شما از مقادیر زیر استفاده میکنند:
- حداقل نسخه SDK از ۱۴ یا بالاتر
- یک compileSdkVersion با نسخه ۲۸ یا بالاتر
- A از مجوز android.permission.RECOVERY استفاده میکند.
ارسال پخش
در زیر دستورالعملهای مربوط به برنامه (یا کد) OEM برای ارسال یک پخش اندروید برای فعال کردن اعلان فشار را مشاهده کنید:
ارسال پخش با عمل.
com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATEبستهی
com.google.android.gmsرا به پخش اضافه کنید.com.google.android.gms
الزامات اضافی
جریان دعوت به ارتقاء همچنین کاربران را قادر میسازد تا ارتقاء سیستم عامل را مستقیماً از طریق این جریان انجام دهند.
برای اینکه این کار عملی شود، یک هدف سفارشی را نمایش دهید که گوگل بتواند از جریان دعوت به ارتقاء که دانلود بهروزرسانی را آغاز میکند، فراخوانی کند.
مثال استفاده از پخش
به مثال زیر از یک پخش برنامه کاربردی توجه کنید:
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);
The value of the EXTRA_PENDING_ANDROID_OS_VERSION_NUMBER key is an 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.
کیت توسعه نرمافزاری خدمات بازی - فقط تحریک جریان
The third party SDK enables you to trigger the Upgrade Invite flow from your app or your own OTA notifications. Use a third party external API to activate the Upgrade Invite flow itself. This method is less recommended.
پیشنیازها
برای آمادهسازی برنامه خود، مراحل بخشهای زیر را تکمیل کنید.
مطمئن شوید که فایل ساخت برنامه شما از مقادیر زیر استفاده میکند:
- حداقل نسخه SDK از ۱۴ یا بالاتر
- یک compileSdkVersion با نسخه ۲۸ یا بالاتر
برنامه خود را پیکربندی کنید
برای پیکربندی برنامه خود:
1. Extract the library from the provided .zip file, and place it in your
۲. وابستگیهای مربوط به SDK رشد گوگل را به فایل Gradle سطح برنامه ماژول خود، که معمولاً app/build.gradle ، اضافه کنید:
dependencies {
implementation files(&<#39;PATH_TO_BI>NARY/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 حاصل، قابلیتهای زیر را ارائه میدهد.
isEligibleForUpgradeدعوت
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) را برمیگرداند که به صورت غیرهمزمان بررسی میکند که آیا کاربر واجد شرایط دعوت به ارتقا (Upgrade Invite) است یا خیر. مقدار بولی حاصل نشان میدهد که آیا کاربر واجد شرایط است یا خیر.
فراخوانی ارتقاءدعوت
Task<Void> invokeUpgradeInvite();
فراخوانی فعالیت دعوت به ارتقا. شیء _Task حاصل نشان میدهد که آیا هنگام شروع فعالیت خطایی رخ داده است یا خیر.
کدهای خطا
Both API methods may fail with an exception of type com.google.android.gms.common.api.ApiException . In such cases, the caller is expected to retry at a later time. Expected common status codes ) include:
- INTERNAL_ERROR - برای هرگونه خطایی در جریان منطق اساسی
- TIMEOUT - اگر درخواست به موقع قابل رسیدگی نبود
- API_NOT_CONNECTED - وقتی API در دسترس نیست (یعنی ماژول UpgradeParty هنوز آماده نیست)
- NETWORK_ERROR - به دلیل خطاهای شبکه، درخواست قابل مدیریت نیست.
- DEVELOPER_ERROR - بسته فراخوانی شده اجازه دسترسی به API UpgradeParty را ندارد.
مثال استفاده از 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);
}
});
}





