Upgrade Invite یک جریان کاربری است که ویژگیهای جدید کلیدی موجود در ارتقاء اصلی سیستم عامل Android موجود را به نمایش میگذارد.
این جریان برای کمک به متقاعد کردن کاربران برای ارتقای دستگاه خود به آخرین نسخه سیستم عامل در نظر گرفته شده است.
هنگامی که دستگاهی دارای یک ارتقاء سیستم عامل در انتظار تأیید کاربر است، کاربران یک اعلان فشاری دریافت می کنند که ویژگی های جدید را نشان می دهد و از آنها دعوت می کند تا ارتقاء را انجام دهند.
برای فعال کردن دعوت بهروزرسانی برای سیستمعامل Android خود، با استفاده از فرم درخواست فعالسازی دعوت بهروزرسانی Android ثبت نام کنید.
تجربه ارتقاء دعوت را سفارشی کنید
میتوانید تجربه ارتقا دعوت را به روشهای زیر سفارشی کنید:
- ویژگی های نامربوط را حذف کنید.
- زبان را در بلوک های متنی به روز کنید.
- انیمیشن ها، رنگ ها و فونت ها را برای مطابقت با برند خود تغییر دهید.
برای سفارشی کردن جریان، دستورالعملهای موجود در راهنمای سبک دعوت بهروزرسانی را مرور کنید و اطلاعات سفارشیسازی خود را در فرم درخواست فعالسازی دعوت بهروزرسانی Android وارد کنید.
راهنمای سبک دعوت را ارتقا دهید
از این راهنمای سبک برای تغییر ظاهر دعوت بهروزرسانی برای مطابقت با نام تجاری خود (صفحه نمایش، رنگ، فونت) استفاده کنید. ما به شدت توصیه می کنیم اندازه ها و ساختار را نزدیک به طرح اصلی نگه دارید.
جریان Upgrade Invite دارای سه مؤلفه زیر است:
- صفحه نمایش معرفی
- صفحه نمایش ویژگی
- صفحه نمایش بیرونی
یک انیمیشن در هر صفحه به توضیح هر ویژگی کمک می کند.
صفحه نمایش معرفی
صفحه معرفی شامل یک انیمیشن کوتاه است که به کاربر خوش آمد می گوید و او را تشویق می کند تا جریان نشان داده شده در صفحه معرفی را شروع کند.
طرح بندی
انیمیشن دستگاه همیشه شامل موارد زیر است:
- پس زمینه سفید و اشکال رنگارنگ
- قاب دستگاه
- محتوای رابط کاربری
یک ظاهر طراحی شده
اگر انتخاب کردید که سبک Material You را تطبیق دهید، می توانید از رنگ ها و شکل های پیش فرض نشان داده شده در مثال استفاده کنید.
اگر از رنگ برند خود استفاده می کنید، مطمئن شوید که با پس زمینه UI به خوبی کار می کند.
حرکت
گزینه 1: با یک ساعت در صفحه اصلی
- اعداد وارد صفحه می شوند.
- اعداد به سمت مرکز حرکت می کنند در حالی که اندازه آنها کاهش می یابد. قاب تلفن همراه ظاهر می شود.
- سایز گوشی کم میشه اشکال شروع به ورود به صفحه می کنند.
- انیمیشن کامل شد شکل ها به آرامی حرکت می کنند.
گزینه 2: بدون ساعت در صفحه اصلی
- تلفن همراه وارد صفحه می شود.
- تلفن همراه با افزایش اندازه به مرکز حرکت می کند. اشکال شروع به ورود به صفحه می کنند.
- تلفن به حداکثر اندازه می رسد و اشکال حرکت می کنند.
صفحه نمایش ویژگی
هر صفحه ویژگی یک ویژگی را در سیستم عامل جدید برجسته می کند.
طرح بندی
انیمیشن دستگاه همیشه شامل موارد زیر است:
- پس زمینه رنگارنگ
- قاب دستگاه
- محتوای رابط کاربری
یک ظاهر طراحی شده
- رنگ پس زمینه ای را انتخاب کنید که با محتوای رابط کاربری و ظاهر کلی به خوبی کار کند.
- در داخل صفحه نمایش، اندازه فونت را تنظیم کنید که به راحتی خوانا باشد. در صورت نیاز، اندازه فونت های بزرگتر را تنظیم کنید.
حرکت
انیمیشنی از جریان هر ویژگی، از جمله تعاملات لمسی، ضبط کنید. ضبط ها را به عنوان فایل های Lottie صادر کنید.
صفحه نمایش بیرونی
صفحه بیرونی جریان را کامل می کند. به کاربران نشان می دهد که همه صفحه ها را مرور کرده اند.
طرح بندی
انیمیشن دستگاه همیشه شامل موارد زیر است:
- نیم دایره در پس زمینه (به علاوه اشکال متحرک)
- قاب دستگاه
- محتوای رابط کاربری
یک ظاهر طراحی شده
- رنگ پس زمینه ای را انتخاب کنید که با محتوای UI و ظاهر کلی به خوبی کار کند.
- از شکل نیم دایره استفاده کنید.
حرکت
جریان استاندارد انیمیشن صفحه نمایش بیرونی را دنبال کنید:
- تلفن همراه کمی بالا می رود.
- یک دایره در پس زمینه ظاهر می شود.
- اشکال از پشت تلفن همراه بالا می آید.
- اشکال از پس زمینه مانند کوفته پرواز می کنند.
جریان دعوت بهروزرسانی را آزمایش کنید
- در دستگاه Android، به این مسیر بروید: تنظیمات > Google > رفع اشکال حزب ارتقا دهید .
- ماشه را برای دعوت بهروزرسانی برای سیستمعامل دستگاه مربوطه آماده کنید (بسته به نسخه فعلی سیستم عامل شما و جریان دعوت بهروزرسانی خاص برای آزمایش. یکی از این موارد:
- روی نوشتن ارتقاء جعلی (نسخه فعلی) کلیک کنید. (به عنوان مثال، اگر سیستم عامل اندروید 13 را اجرا می کنید، جریان آزمایش اندروید 13 را راه اندازی می کند)
- روی نوشتن در انتظار ارتقا (نسخه فعلی + 1) کلیک کنید. (به عنوان مثال، اگر سیستم عامل اندروید 12 را اجرا می کنید، جریان آزمایش اندروید 13 را راه اندازی می کند)
- روی گزارش ارتقای سیستم عامل کلیک کنید
- یا روی اعلان دریافتی کلیک کنید، یا روی Open Upgrade Invite کلیک کنید.
گزینه های راه اندازی برای ارتقا دعوت
3 روش مختلف برای راه اندازی جریان دعوت به روز رسانی وجود دارد: 1. خودکار 2. پخش 3. اجرای SDK خدمات Play
خودکار - اعلان راهاندازی Google (فقط برای دستگاههای در حال اجرا gOTA)
برای دستگاههای OEM که gOTA را اجرا میکنند، ادغام خودکار است و نیازی به مراحل ادغام دعوت بهروزرسانی نیست. هنگامی که یک ارتقاء سیستم عامل اصلی در انتظار شناسایی شد، این یک اعلان فشاری از سرویسهای Google Play به دستگاه ارسال میکند که منجر به جریان دعوت بهروزرسانی میشود.
پخش Android - اعلان راهاندازی Google (توصیه میشود)
پخش برنامه سادهترین و توصیهشدهترین راه برای ادغام جریان دعوت بهروزرسانی است.
یک گیرنده پخش به شما امکان میدهد با استفاده از یک پیام پخش، جریان دعوت بهروزرسانی را از برنامه خود فعال کنید. پخش یک اعلان فشاری از سرویسهای Google Play به دستگاه ارسال میکند که منجر به جریان دعوت بهروزرسانی میشود.
پیش نیازهای پخش
برای آماده سازی اپلیکیشن خود، مراحل زیر را انجام دهید.
مطمئن شوید که فایل های پیکربندی برنامه شما از مقادیر زیر استفاده می کنند:
- نسخه minSdk 14 یا بالاتر
- کامپایلSdkVersion 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
یک عدد صحیح است که نسخه در حال انتظار سیستم عامل را نشان می دهد (در این مثال، نسخه اندرویدی که باید نصب شود 14 است). این برای تعیین اینکه کدام جریان دعوت بهروزرسانی راهاندازی میشود استفاده میشود.
Play Services SDK - فقط راهاندازی جریان
SDK شخص ثالث به شما امکان میدهد جریان دعوت بهروزرسانی را از برنامه یا اعلانهای OTA خود راهاندازی کنید. از یک API خارجی شخص ثالث برای فعال کردن خود جریان دعوت بهروزرسانی استفاده کنید. این روش کمتر توصیه می شود.
پیش نیازها
برای آماده سازی اپلیکیشن خود، مراحل زیر را انجام دهید.
مطمئن شوید که فایل ساخت برنامه شما از مقادیر زیر استفاده می کند:
- نسخه minSdk 14 یا بالاتر
- کامپایلSdkVersion 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;
}
وظیفهای را برمیگرداند که بهطور ناهمزمان تأیید میکند که آیا کاربر واجد شرایط دعوت بهروزرسانی است یا خیر. مقدار بولی به دست آمده نشان می دهد که آیا کاربر واجد شرایط است یا خیر.
invokeUpgradeInvite
Task<Void> invokeUpgradeInvite();
Upgrade Invite Activity را فراخوانی می کند. شیء _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);
}
});
}