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

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

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

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

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

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

अपग्रेड के न्योते के अनुभव को पसंद के मुताबिक बनाने के लिए, ये तरीके अपनाएं:

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

फ़्लो को पसंद के मुताबिक बनाने के लिए, अपग्रेड के न्योते के स्टाइल से जुड़ी गाइड में दिए गए दिशा-निर्देशों को पढ़ें. साथ ही, 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 टूल की मदद से, अपने ऐप्लिकेशन से अपग्रेड के न्योते के फ़्लो या अपने ओटीए सूचनाओं को ट्रिगर किया जा सकता है. अपग्रेड के न्योते वाले फ़्लो को खुद चालू करने के लिए, तीसरे पक्ष के बाहरी एपीआई का इस्तेमाल करें. हमारा सुझाव है कि यह तरीका कम इस्तेमाल करें.

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

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

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

  • 14 या उसके बाद का minSdkVersion
  • 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);
             }
           });
   }