আপগ্রেড আমন্ত্রণ হল একটি ব্যবহারকারীর প্রবাহ যা বর্তমান উপলব্ধ প্রধান Android OS আপগ্রেডের অন্তর্ভুক্ত মূল নতুন বৈশিষ্ট্যগুলিকে প্রদর্শন করে৷
এই প্রবাহটি ব্যবহারকারীদের তাদের ডিভাইসটিকে সর্বশেষ OS সংস্করণে আপগ্রেড করতে রাজি করাতে সাহায্য করার উদ্দেশ্যে করা হয়েছে৷
একবার একটি ডিভাইসে একটি OS আপগ্রেড মুলতুবি থাকা ব্যবহারকারীর অনুমোদনের পরে, ব্যবহারকারীরা নতুন বৈশিষ্ট্যগুলি প্রদর্শন করে এবং আপগ্রেড করার জন্য তাদের আমন্ত্রণ জানিয়ে একটি পুশ বিজ্ঞপ্তি পান।
আপনার Android OS এর জন্য আপগ্রেড আমন্ত্রণ সক্ষম করতে, Android আপগ্রেড আমন্ত্রণ ফর্ম সক্রিয় করার অনুরোধটি ব্যবহার করে নিবন্ধন করুন৷
আপগ্রেড আমন্ত্রণ অভিজ্ঞতা কাস্টমাইজ করুন
আপনি নিম্নলিখিত উপায়ে আপগ্রেড আমন্ত্রণ অভিজ্ঞতা কাস্টমাইজ করতে পারেন:
- অপ্রাসঙ্গিক বৈশিষ্ট্যগুলি সরান।
- পাঠ্য ব্লকে ভাষা আপডেট করুন।
- আপনার ব্র্যান্ডের সাথে মেলে অ্যানিমেশন, রঙ এবং ফন্ট পরিবর্তন করুন।
ফ্লো কাস্টমাইজ করতে, আপগ্রেড ইনভাইট স্টাইল গাইডে নির্দেশিকা পর্যালোচনা করুন এবং Android আপগ্রেড আমন্ত্রণ ফর্ম সক্রিয় করার অনুরোধে আপনার কাস্টমাইজেশন তথ্য অন্তর্ভুক্ত করুন।
আপগ্রেড আমন্ত্রণ শৈলী নির্দেশিকা
আপনার নিজস্ব ব্র্যান্ড (স্ক্রিন, রঙ, ফন্ট) অনুসারে আপগ্রেড ইনভাইট লুক পরিবর্তন করতে এই স্টাইল গাইডটি ব্যবহার করুন। আমরা উচ্চতর মাপ এবং গঠন মূল নকশা কাছাকাছি রাখা সুপারিশ.
আপগ্রেড আমন্ত্রণ প্রবাহে নিম্নলিখিত তিনটি উপাদান রয়েছে:
- ইন্ট্রো পর্দা
- ফিচার স্ক্রীন
- আউটরো পর্দা
প্রতিটি স্ক্রিনে একটি অ্যানিমেশন প্রতিটি বৈশিষ্ট্য ব্যাখ্যা করতে সাহায্য করে।
ইন্ট্রো পর্দা
ইন্ট্রো স্ক্রিনে একটি ছোট অ্যানিমেশন রয়েছে যা ব্যবহারকারীকে স্বাগত জানায় এবং তাদের ইন্ট্রো স্ক্রিনে দেখানো প্রবাহ শুরু করতে উত্সাহিত করে।
লেআউট
ডিভাইস অ্যানিমেশন সর্বদা গঠিত:
- সাদা পটভূমি এবং রঙিন আকার
- ডিভাইস ফ্রেম
- UI বিষয়বস্তু
স্টাইলিং
আপনি যদি ম্যাটেরিয়াল ইউ স্টাইলিং মানিয়ে নিতে চান, আপনি উদাহরণে দেখানো ডিফল্ট রং এবং আকার ব্যবহার করতে পারেন।
আপনি যদি নিজের ব্র্যান্ডের রঙ ব্যবহার করেন তবে নিশ্চিত করুন যে এটি UI ব্যাকগ্রাউন্ডের সাথে ভাল কাজ করে।
গতি
বিকল্প 1: হোম স্ক্রিনে একটি ঘড়ি সহ
- সংখ্যা পর্দায় প্রবেশ করুন.
- আকার হ্রাস করার সময় সংখ্যাগুলি কেন্দ্রে চলে যায়। মোবাইল ফোনের ফ্রেম দেখা যাচ্ছে।
- ফোনের আকার কমে যায়। আকারগুলি পর্দায় প্রবেশ করতে শুরু করে।
- অ্যানিমেশন সম্পন্ন হয়. আকারগুলি আস্তে আস্তে চলতে থাকে।
বিকল্প 2: হোম স্ক্রিনে কোন ঘড়ি নেই
- মোবাইল ফোনের স্ক্রিনে ঢুকে যায়।
- আকার বাড়ার সময় ফোনটি কেন্দ্রে চলে যায়। আকারগুলি পর্দায় প্রবেশ করতে শুরু করে।
- ফোনটি সর্বাধিক আকারে পৌঁছায় এবং আকারগুলি চলতে থাকে৷
ফিচার স্ক্রীন
প্রতিটি ফিচার স্ক্রীন নতুন ওএস-এ একটি বৈশিষ্ট্য হাইলাইট করে।
লেআউট
ডিভাইস অ্যানিমেশন সর্বদা গঠিত:
- রঙিন ব্যাকগ্রাউন্ড
- ডিভাইস ফ্রেম
- UI বিষয়বস্তু
স্টাইলিং
- একটি পটভূমির রঙ চয়ন করুন যা UI বিষয়বস্তুর সাথে এবং সাধারণ চেহারার সাথে ভাল কাজ করে।
- স্ক্রিনগুলির ভিতরে, ফন্টের আকারগুলি সেট করুন যা সহজেই পাঠযোগ্য। প্রয়োজন হলে, বড় ফন্টের আকার সেট করুন।
গতি
স্পর্শ মিথস্ক্রিয়া সহ প্রতিটি বৈশিষ্ট্যের প্রবাহের একটি অ্যানিমেশন রেকর্ড করুন। Lottie ফাইল হিসাবে রেকর্ডিং রপ্তানি করুন.
আউটরো পর্দা
আউটরো স্ক্রিন প্রবাহটি সম্পূর্ণ করে। এটি ব্যবহারকারীদের নির্দেশ করে যে তারা সমস্ত পর্দার মধ্য দিয়ে গেছে।
লেআউট
ডিভাইস অ্যানিমেশন সর্বদা গঠিত:
- পটভূমিতে অর্ধ বৃত্ত (প্লাস অ্যানিমেটেড আকার)
- ডিভাইস ফ্রেম
- UI বিষয়বস্তু
স্টাইলিং
- একটি পটভূমির রঙ নির্বাচন করুন যা UI বিষয়বস্তুর সাথে এবং সাধারণ চেহারার সাথে ভাল কাজ করে।
- একটি অর্ধ-বৃত্ত আকৃতি ব্যবহার করুন।
গতি
স্ট্যান্ডার্ড আউটরো স্ক্রিন অ্যানিমেশন ফ্লো অনুসরণ করুন:
- মোবাইল ফোনটা একটু উপরে উঠে।
- পটভূমিতে একটি বৃত্ত দেখা যাচ্ছে।
- মোবাইল ফোনের আড়াল থেকে আকৃতি উঠে আসে।
- আকারগুলি কনফেটির মতো পটভূমি থেকে উড়ে যায়।
আপগ্রেড আমন্ত্রণ প্রবাহ পরীক্ষা করুন
- অ্যান্ড্রয়েড ডিভাইসে, এখানে যান: সেটিংস > Google > আপগ্রেড পার্টি ডিবাগ ।
- প্রাসঙ্গিক ডিভাইস OS এর জন্য আপগ্রেড আমন্ত্রণের জন্য ট্রিগার প্রস্তুত করুন (আপনার বর্তমান OS সংস্করণ এবং পরীক্ষা করার জন্য নির্দিষ্ট আপগ্রেড আমন্ত্রণ প্রবাহের উপর নির্ভর করে। হয়:
- জাল আপগ্রেড লিখুন (বর্তমান সংস্করণ) ক্লিক করুন। (উদাহরণস্বরূপ, আপনি যদি Android 13 OS চালান তবে এটি Android 13 পরীক্ষা প্রবাহকে ট্রিগার করবে)
- মুলতুবি আপগ্রেড লিখুন ক্লিক করুন (বর্তমান সংস্করণ + 1) । (উদাহরণস্বরূপ, আপনি যদি Android 12 OS চালান তবে এটি Android 13 পরীক্ষা প্রবাহকে ট্রিগার করবে)
- রিপোর্ট OS আপগ্রেড ক্লিক করুন
- হয় প্রাপ্ত বিজ্ঞপ্তিতে ক্লিক করুন, অথবা আপগ্রেড আমন্ত্রণ খুলুন ক্লিক করুন৷
আপগ্রেড আমন্ত্রণের জন্য ট্রিগার বিকল্প
আপগ্রেড আমন্ত্রণ প্রবাহকে ট্রিগার করার জন্য 3টি ভিন্ন উপায় রয়েছে: 1. স্বয়ংক্রিয় 2. সম্প্রচার 3. প্লে পরিষেবা SDK ট্রিগার করা হয়েছে
স্বয়ংক্রিয় - Google ট্রিগার করা বিজ্ঞপ্তি (শুধুমাত্র gOTA চলমান ডিভাইসের জন্য)
GOTA চালিত OEM ডিভাইসগুলির জন্য, ইন্টিগ্রেশন স্বয়ংক্রিয় এবং কোন আপগ্রেড আমন্ত্রণ ইন্টিগ্রেশন পদক্ষেপের প্রয়োজন নেই। একটি মুলতুবি থাকা প্রধান OS আপগ্রেড শনাক্ত হয়ে গেলে, এটি Google Play পরিষেবাগুলি থেকে ডিভাইসে একটি পুশ বিজ্ঞপ্তি পাঠাবে, যার ফলে আপগ্রেড আমন্ত্রণ প্রবাহ শুরু হবে৷
অ্যান্ড্রয়েড ব্রডকাস্ট - Google ট্রিগার করা বিজ্ঞপ্তি (প্রস্তাবিত)
আপগ্রেড আমন্ত্রণ প্রবাহকে একীভূত করার জন্য একটি অ্যাপ সম্প্রচার হল সবচেয়ে সহজ এবং প্রস্তাবিত উপায়।
একটি ব্রডকাস্ট রিসিভার আপনাকে একটি সম্প্রচার বার্তা ব্যবহার করে আপনার অ্যাপ থেকে আপগ্রেড আমন্ত্রণ প্রবাহকে ট্রিগার করতে সক্ষম করে৷ সম্প্রচারটি Google Play পরিষেবাগুলি থেকে ডিভাইসে একটি পুশ বিজ্ঞপ্তি পাঠায়, যা আপগ্রেড আমন্ত্রণ প্রবাহের দিকে নিয়ে যায়।
সম্প্রচার পূর্বশর্ত
আপনার অ্যাপ প্রস্তুত করতে, নিম্নলিখিত বিভাগগুলিতে পদক্ষেপগুলি সম্পূর্ণ করুন৷
নিশ্চিত করুন যে আপনার অ্যাপের কনফিগারেশন ফাইলগুলি নিম্নলিখিত মানগুলি ব্যবহার করে:
- 14 বা উচ্চতর একটি minSdk সংস্করণ
- 28 বা উচ্চতর একটি কম্পাইলSdk সংস্করণ
- A usePermission of android.permission.RECOVERY
সম্প্রচার পাঠান
পুশ বিজ্ঞপ্তি ট্রিগার করতে একটি Android সম্প্রচার পাঠাতে OEM অ্যাপের (বা কোড) নির্দেশাবলী নীচে দেখুন:
কর্ম সহ সম্প্রচার পাঠান.
com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE
সম্প্রচারে
com.google.android.gms
প্যাকেজ যোগ করুন।com.google.android.gms
অতিরিক্ত প্রয়োজনীয়তা
আপগ্রেড আমন্ত্রণ প্রবাহ ব্যবহারকারীদের সরাসরি প্রবাহ থেকে OS আপগ্রেড করতে সক্ষম করে।
এটি কাজ করার জন্য, একটি কাস্টম অভিপ্রায় প্রকাশ করুন যা 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 Services SDK - শুধুমাত্র ফ্লো ট্রিগারিং
তৃতীয় পক্ষের SDK আপনাকে আপনার অ্যাপ বা আপনার নিজস্ব OTA বিজ্ঞপ্তিগুলি থেকে আপগ্রেড আমন্ত্রণ প্রবাহকে ট্রিগার করতে সক্ষম করে৷ আপগ্রেড আমন্ত্রণ প্রবাহ নিজেই সক্রিয় করতে একটি তৃতীয় পক্ষের বাহ্যিক API ব্যবহার করুন৷ এই পদ্ধতি কম সুপারিশ করা হয়.
পূর্বশর্ত
আপনার অ্যাপ প্রস্তুত করতে, নিম্নলিখিত বিভাগগুলিতে পদক্ষেপগুলি সম্পূর্ণ করুন৷
নিশ্চিত করুন যে আপনার অ্যাপের বিল্ড ফাইল নিম্নলিখিত মানগুলি ব্যবহার করে:
- 14 বা উচ্চতর একটি minSdk সংস্করণ
- 28 বা উচ্চতর একটি কম্পাইলSdk সংস্করণ
আপনার অ্যাপ কনফিগার করুন
আপনার অ্যাপ কনফিগার করতে:
1. Extract the library from the provided .zip file, and place it in your
ভান্ডার 2. আপনার মডিউলের অ্যাপ-লেভেল গ্রেডল ফাইলে Google গ্রোথ SDK-এর নির্ভরতা যোগ করুন, সাধারণত 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 নিম্নলিখিত কার্যকারিতা প্রকাশ করে।
আপগ্রেড ইনভাইটের জন্য যোগ্য
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 _object নির্দেশ করে যে কার্যকলাপ শুরু করার সময় একটি ত্রুটি ঘটেছে কিনা।
ত্রুটি কোড
উভয় API পদ্ধতি com.google.android.gms.common.api.ApiException প্রকারের ব্যতিক্রম ছাড়া ব্যর্থ হতে পারে। এই ধরনের ক্ষেত্রে, কলার পরবর্তী সময়ে পুনরায় চেষ্টা করবে বলে আশা করা হচ্ছে। প্রত্যাশিত সাধারণ স্ট্যাটাস কোডগুলির মধ্যে রয়েছে:
- INTERNAL_ERROR - অন্তর্নিহিত যুক্তির প্রবাহে কোনো ত্রুটির জন্য
- টাইমআউট - যদি অনুরোধটি সময়মত পরিচালনা করা না যায়
- 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);
}
});
}