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

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

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

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

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

Android ब्रॉडकास्ट - Google से ट्रिगर की गई सूचना (इसका सुझाव दिया जाता है)

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

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

ब्रॉडकास्ट करने से जुड़ी ज़रूरी शर्तें

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

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

  • minSdkVersion 14 या उसके बाद का वर्शन
  • compileSdkVersion 28 या इसके बाद का वर्शन
  • android.permission.RECOVERY की usesPermission

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

पुश नोटिफ़िकेशन को ट्रिगर करने के लिए, Android ब्रॉडकास्ट भेजने वाले OEM ऐप्लिकेशन (या कोड) के लिए, यहां दिए गए निर्देश देखें:

  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 - सिर्फ़ फ़्लो ट्रिगर करना

तीसरे पक्ष के 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('<PATH_TO_BINARY>/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();

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

गड़बड़ी कोड

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

  • INTERNAL_ERROR - लॉजिक के फ़्लो में किसी भी गड़बड़ी के लिए
  • टाइम आउट - अगर अनुरोध को समय पर पूरा नहीं किया जा सका
  • API_NOT_CONNECTED - जब एपीआई उपलब्ध न हो (यानी, 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);
             }
           });
   }