Android अपग्रेड करने का न्योता

अपग्रेड का न्योता, उपयोगकर्ता के लिए एक ऐसा फ़्लो है जिसमें Android OS के मौजूदा बड़े अपग्रेड में शामिल नई और अहम सुविधाएं दिखाई जाती हैं.

इस फ़्लो का मकसद, उपयोगकर्ताओं को अपने डिवाइस को ओएस के नए वर्शन पर अपग्रेड करने के लिए मनाना है.

जब किसी डिवाइस पर ओएस का अपग्रेड, उपयोगकर्ता की मंज़ूरी के लिए पेंडिंग होता है, तो उपयोगकर्ताओं को एक पुश सूचना मिलती है. इसमें नई सुविधाएं दिखाई जाती हैं और उन्हें अपग्रेड करने का न्योता दिया जाता है.

डिवाइस बनाने वाली कंपनियां, Android OS वाले अपने डिवाइसों के लिए, अपग्रेड पार्टी की सुविधा चालू कर सकती हैं. इसके लिए, उन्हें Android के अपग्रेड के न्योते को चालू करने का अनुरोध वाला फ़ॉर्म सबमिट करना होगा.

अपग्रेड के न्योते वाले फ़्लो को पसंद के मुताबिक बनाना

अपग्रेड के न्योते वाले फ़्लो को इन तरीकों से पसंद के मुताबिक बनाया जा सकता है:

  • काम की न होने वाली सुविधाएं हटाएं.
  • टेक्स्ट ब्लॉक में भाषा अपडेट करें.
  • अपने ब्रैंड के हिसाब से ऐनिमेशन, रंग, और फ़ॉन्ट में बदलाव करें.

फ़्लो को पसंद के मुताबिक बनाने के लिए, अपग्रेड के न्योते की स्टाइल गाइड में दिए गए दिशा-निर्देशों की समीक्षा करें. साथ ही, फ़ॉर्म के जवाब में, अपनी पसंद के मुताबिक बनाई गई जानकारी शामिल करें.

अपग्रेड के न्योते की स्टाइल गाइड

इस स्टाइल गाइड का इस्तेमाल करके, अपग्रेड के न्योते की दिखावट में अपने ब्रैंड के हिसाब से बदलाव करें जैसे, स्क्रीन, रंग, फ़ॉन्ट. हमारा सुझाव है कि साइज़ और स्ट्रक्चर को ओरिजनल डिज़ाइन के आस-पास ही रखें.

अपग्रेड के न्योते वाले फ़्लो में ये तीन कॉम्पोनेंट शामिल हैं:

  • जानकारी देने वाली स्क्रीन
  • सुविधा की जानकारी देने वाली स्क्रीन
  • आखिरी स्क्रीन
पहली इमेज. अपग्रेड के न्योते वाले फ़्लो में, तीन तरह की स्क्रीन होती हैं

हर स्क्रीन पर मौजूद ऐनिमेशन, हर सुविधा के बारे में जानकारी देता है.

जानकारी देने वाली स्क्रीन

जानकारी देने वाली स्क्रीन पर एक छोटा ऐनिमेशन होता है. यह ऐनिमेशन, उपयोगकर्ता का स्वागत करता है और उन्हें जानकारी देने वाली स्क्रीन पर दिखाए गए फ़्लो को शुरू करने के लिए बढ़ावा देता है.

लेआउट
दूसरी इमेज. अपग्रेड के न्योते की जानकारी देने वाली स्क्रीन के लिए वायरफ़्रेम लेआउट

डिवाइस के ऐनिमेशन में हमेशा ये चीज़ें शामिल होती हैं:

स्टाइल

अगर आपने Material You स्टाइल को अपनाने का विकल्प चुना है, तो उदाहरण में दिखाए गए डिफ़ॉल्ट रंग और आकार इस्तेमाल किए जा सकते हैं.

तीसरी इमेज. अपग्रेड के न्योते वाले फ़्लो के लिए डिफ़ॉल्ट कलर स्कीम.

अगर अपने ब्रैंड के रंग का इस्तेमाल किया जाता है, तो पक्का करें कि वह यूज़र इंटरफ़ेस के बैकग्राउंड के साथ अच्छी तरह से काम करे.

मोशन

पहला विकल्प: होम स्क्रीन पर घड़ी के साथ

  1. स्क्रीन पर नंबर दिखते हैं.
  2. नंबर, साइज़ में छोटे होते हुए स्क्रीन के बीच में आ जाते हैं. मोबाइल फ़ोन का फ़्रेम दिखता है.
  3. फ़ोन का साइज़ छोटा हो जाता है. स्क्रीन पर आकार दिखने लगते हैं.
  4. ऐनिमेशन पूरा हो जाता है. आकार धीरे-धीरे घूमते रहते हैं.
चौथी इमेज. घड़ी के साथ, अपग्रेड के न्योते की जानकारी देने वाली स्क्रीन के ऐनिमेशन के लिए वायरफ़्रेम लेआउट.
पांचवी इमेज. घड़ी के साथ, जानकारी देने वाली स्क्रीन के ऐनिमेशन का उदाहरण घड़ी के साथ.

दूसरा विकल्प: होम स्क्रीन पर घड़ी न हो

  1. मोबाइल फ़ोन स्क्रीन पर दिखता है.
  2. फ़ोन, साइज़ में बड़ा होते हुए स्क्रीन के बीच में आ जाता है. स्क्रीन पर आकार दिखने लगते हैं.
  3. फ़ोन, सबसे बड़े साइज़ में पहुंच जाता है और आकार घूमते रहते हैं.
छठी इमेज. घड़ी के बिना, अपग्रेड के न्योते की जानकारी देने वाली स्क्रीन के ऐनिमेशन के लिए वायरफ़्रेम लेआउट.
सातवीं इमेज. घड़ी के बिना, जानकारी देने वाली स्क्रीन के ऐनिमेशन का उदाहरण. घड़ी के बिना.

सुविधा की जानकारी देने वाली स्क्रीन

हर सुविधा की जानकारी देने वाली स्क्रीन, नए ओएस की किसी सुविधा को हाइलाइट करती है.

लेआउट
आठवीं इमेज. अपग्रेड के न्योते की सुविधा की जानकारी देने वाली स्क्रीन के लिए वायरफ़्रेम लेआउट.

डिवाइस के ऐनिमेशन में हमेशा ये चीज़ें शामिल होती हैं:

  • रंगीन बैकग्राउंड
  • डिवाइस का फ़्रेम
  • यूज़र इंटरफ़ेस का कॉन्टेंट
स्टाइल
  • बैकग्राउंड का ऐसा रंग चुनें जो यूज़र इंटरफ़ेस के कॉन्टेंट और सामान्य दिखावट के साथ अच्छी तरह से काम करे.
  • स्क्रीन पर, फ़ॉन्ट का ऐसा साइज़ सेट करें जो आसानी से पढ़ा जा सके. ज़रूरत पड़ने पर, फ़ॉन्ट का बड़ा साइज़ सेट करें.
मोशन

हर सुविधा के फ़्लो का ऐनिमेशन रिकॉर्ड करें. इसमें टच इंटरैक्शन भी शामिल करें. रिकॉर्डिंग को Lottie फ़ाइलों के तौर पर एक्सपोर्ट करें.

आखिरी स्क्रीन

आखिरी स्क्रीन, फ़्लो को पूरा करती है. इससे उपयोगकर्ताओं को पता चलता है कि उन्होंने सभी स्क्रीन देख ली हैं.

लेआउट
नौवीं इमेज. अपग्रेड के न्योते की आखिरी स्क्रीन के लिए वायरफ़्रेम लेआउट.

डिवाइस के ऐनिमेशन में हमेशा ये चीज़ें शामिल होती हैं:

  • बैकग्राउंड पर आधा सर्कल (साथ ही, एनिमेटेड आकार)
  • डिवाइस का फ़्रेम
  • यूज़र इंटरफ़ेस का कॉन्टेंट
स्टाइल
  • बैकग्राउंड का ऐसा रंग चुनें जो यूज़र इंटरफ़ेस के कॉन्टेंट और सामान्य दिखावट के साथ अच्छी तरह से काम करे.
  • आधे सर्कल के आकार का इस्तेमाल करें.
मोशन

आखिरी स्क्रीन के ऐनिमेशन के स्टैंडर्ड फ़्लो का पालन करें:

  1. मोबाइल फ़ोन थोड़ा ऊपर की ओर जाता है.
  2. बैकग्राउंड में एक सर्कल दिखता है.
  3. मोबाइल फ़ोन के पीछे से आकार दिखते हैं.
  4. आकार, कन्फ़ेटी की तरह बैकग्राउंड से बाहर उड़ जाते हैं.
10वीं इमेज. अपग्रेड के न्योते की आखिरी स्क्रीन के ऐनिमेशन के लिए वायरफ़्रेम लेआउट.
11वीं इमेज. आखिरी स्क्रीन के ऐनिमेशन का उदाहरण.

अपग्रेड के न्योते वाले फ़्लो की जांच करना

  1. Android डिवाइस पर, सेटिंग > Google > अपग्रेड पार्टी डीबग पर जाएं.
  2. अपग्रेड के न्योते को ट्रिगर करने की तैयारी करें. इसके लिए, डिवाइस के ओएस के हिसाब से सेटिंग करें. यह सेटिंग, आपके मौजूदा ओएस वर्शन और जांच के लिए चुने गए अपग्रेड के न्योते वाले फ़्लो के हिसाब से की जाती है. इनमें से कोई एक विकल्प चुनें:
    1. अपग्रेड की नकली जानकारी डालें (मौजूदा वर्शन) पर क्लिक करें. उदाहरण के लिए, अगर Android 13 ओएस इस्तेमाल किया जा रहा है, तो इससे Android 13 के टेस्ट फ़्लो को ट्रिगर किया जाएगा
    2. अपग्रेड की पेंडिंग जानकारी डालें (मौजूदा वर्शन + 1) पर क्लिक करें. उदाहरण के लिए, अगर Android 12 ओएस इस्तेमाल किया जा रहा है, तो इससे Android 13 के टेस्ट फ़्लो को ट्रिगर किया जाएगा
    3. ओएस अपग्रेड की रिपोर्ट करें पर क्लिक करें
  3. मिली हुई सूचना पर क्लिक करें या अपग्रेड का न्योता खोलें पर क्लिक करें.

अपग्रेड के न्योते को ट्रिगर करने के विकल्प

अपग्रेड के न्योते वाले फ़्लो को ट्रिगर करने के तीन अलग-अलग तरीके हैं: 1. अपने-आप 2. ब्रॉडकास्ट 3. Play Services SDK टूल से ट्रिगर किया गया

अपने-आप - Google से ट्रिगर की गई सूचना (सिर्फ़ gOTA वाले डिवाइसों के लिए)

gOTA वाले ओईएम डिवाइसों के लिए, इंटिग्रेशन अपने-आप हो जाता है. इसके लिए, अपग्रेड के न्योते वाले इंटिग्रेशन के चरणों को पूरा करने की ज़रूरत नहीं होती. ओएस के बड़े अपग्रेड के पेंडिंग होने का पता चलने पर, Google Play services से डिवाइस को एक पुश सूचना भेजी जाती है. इससे अपग्रेड के न्योते वाला फ़्लो शुरू हो जाता है.

Android ब्रॉडकास्ट - Google से ट्रिगर की गई सूचना (सुझाया गया)

अपग्रेड के न्योते वाले फ़्लो को इंटिग्रेट करने का सबसे आसान और सुझाया गया तरीका, ऐप्लिकेशन ब्रॉडकास्ट है.

ब्रॉडकास्ट रिसीवर की मदद से, ब्रॉडकास्ट मैसेज का इस्तेमाल करके, अपने ऐप्लिकेशन से अपग्रेड के न्योते वाले फ़्लो को ट्रिगर किया जा सकता है. ब्रॉडकास्ट से, Google Play services से डिवाइस को एक पुश सूचना भेजी जाती है. इससे अपग्रेड के न्योते वाला फ़्लो शुरू हो जाता है.

ब्रॉडकास्ट के लिए ज़रूरी शर्तें

अपने ऐप्लिकेशन को तैयार करने के लिए, यहां दिए गए सेक्शन में बताए गए चरणों को पूरा करें.

पक्का करें कि आपके ऐप्लिकेशन की कॉन्फ़िगरेशन फ़ाइलों में ये वैल्यू इस्तेमाल की गई हों:

  • minSdkVersion 14 या इससे ज़्यादा
  • compileSdkVersion 28 या इससे ज़्यादा
  • usesPermission android.permission.RECOVERY

ब्रॉडकास्ट भेजना

ओईएम ऐप्लिकेशन (या कोड) के लिए, Android ब्रॉडकास्ट भेजकर पुश सूचना को ट्रिगर करने के निर्देश यहां दिए गए हैं:

  1. कार्रवाई के साथ ब्रॉडकास्ट भेजें.

    com.google.android.gms.growth.upgradeparty.upgradeinvite.ACTION_SYSTEM_UPDATE
    
  2. ब्रॉडकास्ट में 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 - सिर्फ़ फ़्लो को ट्रिगर करना

तीसरे पक्ष के एसडीके की मदद से, अपने ऐप्लिकेशन या ओटीए की सूचनाओं से अपग्रेड के न्योते वाले फ़्लो को ट्रिगर किया जा सकता है. अपग्रेड के न्योते वाले फ़्लो को चालू करने के लिए, तीसरे पक्ष के बाहरी एपीआई का इस्तेमाल करें. हम इस तरीके का सुझाव नहीं देते.

ज़रूरी शर्तें

अपने ऐप्लिकेशन को तैयार करने के लिए, यहां दिए गए सेक्शन में बताए गए चरणों को पूरा करें.

पक्का करें कि आपके ऐप्लिकेशन की बिल्ड फ़ाइल में ये वैल्यू इस्तेमाल की गई हों:

  • minSdkVersion 14 या इससे ज़्यादा
  • compileSdkVersion 28 या इससे ज़्यादा

अपने ऐप्लिकेशन को कॉन्फ़िगर करना

अपने ऐप्लिकेशन को कॉन्फ़िगर करने के लिए:

1. Extract the library from the provided .zip file, and place it in your

डेटाबेस. 2. अपने मॉड्यूल की ऐप्लिकेशन-लेवल वाली Gradle फ़ाइल में, Google Growth SDK के लिए डिपेंडेंसी जोड़ें. आम तौर पर, यह फ़ाइल app/build.gradle होती है:

   dependencies {
    implementation files(&<#39;PATH_TO_BI>NARY/play-services-growth-16.1.0-eap04.aar';)
   }
  1. क्लाइंट की डिपेंडेंसी उपलब्ध कराने के लिए, ये लाइब्रेरी शामिल करें:

    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
    

एपीआई को शुरू करना

  1. क्लाइंट को शुरू करने के लिए, UpgradeParty क्लास का इस्तेमाल करें:

    import com.google.android.gms.growth.UpgradeParty;
    UpgradeParty.getClient(activity);
    
  2. ऐक्टिविटी पैरामीटर, शुरू करने वाले ऐक्टिविटी ऑब्जेक्ट के तौर पर होना चाहिए.

एपीआई फ़ंक्शन

इससे मिलने वाला 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();

यह अपग्रेड के न्योते वाली ऐक्टिविटी को शुरू करता है. इससे मिलने वाला _टास्क _ऑब्जेक्ट, यह बताता है कि ऐक्टिविटी शुरू करते समय कोई गड़बड़ी हुई है या नहीं.

गड़बड़ी कोड

एपीआई के दोनों तरीके, com.google.android.gms.common.api.ApiException टाइप की गड़बड़ी के साथ काम नहीं कर सकते. ऐसे मामलों में, कॉलर से उम्मीद की जाती है कि वह बाद में फिर से कोशिश करे. आम तौर पर, स्टेटस कोड) में ये शामिल होते हैं:

  • INTERNAL_ERROR - लॉजिक के फ़्लो में किसी भी तरह की गड़बड़ी के लिए
  • TIMEOUT - अगर अनुरोध को समय पर पूरा नहीं किया जा सका
  • API_NOT_CONNECTED - जब एपीआई उपलब्ध न हो. जैसे, UpgradeParty मॉड्यूल अब तक तैयार नहीं हुआ है
  • NETWORK_ERROR - नेटवर्क में गड़बड़ी की वजह से, अनुरोध को पूरा नहीं किया जा सका
  • DEVELOPER_ERROR - कॉलिंग पैकेज को UpgradeParty API को ऐक्सेस करने की अनुमति नहीं है

एसडीके के इस्तेमाल का उदाहरण

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);
             }
           });
   }