एंड्रॉइड अपग्रेड आमंत्रण

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

इस प्रवाह का उद्देश्य उपयोगकर्ताओं को अपने डिवाइस को नवीनतम ओएस संस्करण में अपग्रेड करने के लिए मनाने में मदद करना है।

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

अपने एंड्रॉइड ओएस के लिए अपग्रेड इनवाइट को सक्षम करने के लिए, एंड्रॉइड अपग्रेड इनवाइट फॉर्म को सक्रिय करने के लिए अनुरोध का उपयोग करके पंजीकरण करें।

अपग्रेड आमंत्रण अनुभव को अनुकूलित करें

आप अपग्रेड आमंत्रण अनुभव को निम्नलिखित तरीकों से अनुकूलित कर सकते हैं:

  • अप्रासंगिक विशेषताएँ हटाएँ.
  • टेक्स्ट ब्लॉक में भाषा अपडेट करें.
  • अपने ब्रांड से मेल खाने के लिए एनिमेशन, रंग और फ़ॉन्ट को संशोधित करें।

प्रवाह को अनुकूलित करने के लिए, अपग्रेड आमंत्रण शैली गाइड में दिशानिर्देशों की समीक्षा करें और एंड्रॉइड अपग्रेड आमंत्रण फॉर्म को सक्रिय करने के अनुरोध में अपनी अनुकूलन जानकारी शामिल करें।

आमंत्रण स्टाइल गाइड को अपग्रेड करें

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

अपग्रेड आमंत्रण प्रवाह में निम्नलिखित तीन घटक शामिल हैं:

  • परिचय स्क्रीन
  • फ़ीचर स्क्रीन
  • आउटरो स्क्रीन
चित्र 1. अपग्रेड आमंत्रण प्रवाह में तीन स्क्रीन प्रकार

प्रत्येक स्क्रीन पर एक एनीमेशन प्रत्येक सुविधा को समझाने में मदद करता है।

परिचय स्क्रीन

इंट्रो स्क्रीन में एक छोटा एनीमेशन होता है जो उपयोगकर्ता का स्वागत करता है और उन्हें इंट्रो स्क्रीन पर दिखाए गए प्रवाह को शुरू करने के लिए प्रोत्साहित करता है।

लेआउट
चित्र 2. अपग्रेड आमंत्रण परिचय स्क्रीन के लिए वायरफ़्रेम लेआउट

डिवाइस एनीमेशन में हमेशा निम्न शामिल होते हैं:

  • सफ़ेद पृष्ठभूमि और रंगीन आकृतियाँ
  • डिवाइस फ़्रेम
  • यूआई सामग्री
स्टाइल

यदि आप मटेरियल यू स्टाइल को अनुकूलित करना चुनते हैं, तो आप उदाहरण में दिखाए गए डिफ़ॉल्ट रंगों और आकृतियों का उपयोग कर सकते हैं।

चित्र 3. अपग्रेड आमंत्रण प्रवाह के लिए डिफ़ॉल्ट रंग योजना।

यदि आप अपने स्वयं के ब्रांड रंग का उपयोग करते हैं, तो सुनिश्चित करें कि यह यूआई पृष्ठभूमि के साथ अच्छी तरह से काम करता है।

गति

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

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

विकल्प 2: होम स्क्रीन पर कोई घड़ी नहीं

  1. मोबाइल फ़ोन स्क्रीन में प्रवेश करता है.
  2. आकार में वृद्धि करते हुए फोन केंद्र की ओर चला जाता है। आकृतियाँ स्क्रीन में प्रवेश करने लगती हैं।
  3. फ़ोन अधिकतम आकार तक पहुँच जाता है और आकृतियाँ बदलती रहती हैं।
चित्र 6. बिना घड़ी के अपग्रेड आमंत्रण परिचय स्क्रीन एनीमेशन के लिए वायरफ्रेम लेआउट।
चित्र 7. घड़ी के बिना परिचय स्क्रीन के लिए उदाहरण एनीमेशन।

फ़ीचर स्क्रीन

प्रत्येक फीचर स्क्रीन नए ओएस में एक फीचर को हाइलाइट करती है।

लेआउट
चित्र 8. अपग्रेड आमंत्रण फ़ीचर स्क्रीन के लिए वायरफ़्रेम लेआउट।

डिवाइस एनीमेशन में हमेशा निम्न शामिल होते हैं:

  • रंगीन पृष्ठभूमि
  • डिवाइस फ़्रेम
  • यूआई सामग्री
स्टाइल
  • ऐसा पृष्ठभूमि रंग चुनें जो यूआई सामग्री और सामान्य स्वरूप के साथ अच्छा काम करता हो।
  • स्क्रीन के अंदर, ऐसे फ़ॉन्ट आकार सेट करें जो आसानी से सुपाठ्य हों। यदि आवश्यक हो, तो बड़े फ़ॉन्ट आकार सेट करें।
गति

स्पर्श इंटरैक्शन सहित प्रत्येक सुविधा के प्रवाह का एनीमेशन रिकॉर्ड करें। रिकॉर्डिंग को लोटी फ़ाइलों के रूप में निर्यात करें।

आउटरो स्क्रीन

आउट्रो स्क्रीन प्रवाह को पूरा करती है। यह उपयोगकर्ताओं को इंगित करता है कि वे सभी स्क्रीन देख चुके हैं।

लेआउट
चित्र 9. अपग्रेड इनवाइट आउट्रो स्क्रीन के लिए वायरफ्रेम लेआउट।

डिवाइस एनीमेशन में हमेशा निम्न शामिल होते हैं:

  • पृष्ठभूमि पर आधा वृत्त (साथ ही एनिमेटेड आकृतियाँ)
  • डिवाइस फ़्रेम
  • यूआई सामग्री
स्टाइल
  • ऐसा पृष्ठभूमि रंग चुनें जो यूआई सामग्री और सामान्य स्वरूप के साथ अच्छा काम करता हो।
  • अर्धवृत्ताकार आकृति का प्रयोग करें।
गति

मानक आउट्रो स्क्रीन एनीमेशन प्रवाह का पालन करें:

  1. मोबाइल फ़ोन थोड़ा ऊपर चला जाता है.
  2. पृष्ठभूमि में एक वृत्त दिखाई देता है.
  3. मोबाइल फोन के पीछे से आकृतियाँ निकलती हैं।
  4. आकृतियाँ कंफ़ेद्दी की तरह पृष्ठभूमि से बाहर उड़ती हैं।
चित्र 10. अपग्रेड इनवाइट आउट्रो स्क्रीन एनीमेशन के लिए वायरफ्रेम लेआउट।
चित्र 11. आउट्रो स्क्रीन एनीमेशन का उदाहरण।

अपग्रेड आमंत्रण प्रवाह का परीक्षण करें

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

अपग्रेड आमंत्रण के लिए ट्रिगर विकल्प

अपग्रेड आमंत्रण प्रवाह को ट्रिगर करने के 3 अलग-अलग तरीके हैं: 1. स्वचालित 2. प्रसारण 3. प्ले सर्विसेज एसडीके ट्रिगर

स्वचालित - Google द्वारा ट्रिगर अधिसूचना (केवल GOTA चलाने वाले उपकरणों के लिए)

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

एंड्रॉइड ब्रॉडकास्ट - Google द्वारा ट्रिगर अधिसूचना (अनुशंसित)

अपग्रेड आमंत्रण प्रवाह को एकीकृत करने के लिए ऐप प्रसारण सबसे सरल और अनुशंसित तरीका है।

एक प्रसारण रिसीवर आपको प्रसारण संदेश का उपयोग करके अपने ऐप से अपग्रेड आमंत्रण प्रवाह को ट्रिगर करने में सक्षम बनाता है। प्रसारण Google Play सेवाओं से डिवाइस पर एक पुश अधिसूचना भेजता है, जिससे अपग्रेड आमंत्रण प्रवाह होता है।

प्रसारण पूर्वावश्यकताएँ

अपना ऐप तैयार करने के लिए, निम्नलिखित अनुभागों में दिए गए चरणों को पूरा करें।

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

  • 14 या उच्चतर का एक minSdkVersion
  • 28 या उच्चतर का compileSdkVersion
  • android.permission.RECOVERY का उपयोग अनुमति

प्रसारण भेजें

पुश अधिसूचना को ट्रिगर करने के लिए एंड्रॉइड प्रसारण भेजने के लिए ओईएम ऐप (या कोड) के निर्देश नीचे देखें:

  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 कुंजी का मान एक पूर्णांक है जो लंबित OS संस्करण को दर्शाता है (इस उदाहरण में, इंस्टॉल किया जाने वाला Android संस्करण 14 है)। इसका उपयोग यह निर्धारित करने के लिए किया जाता है कि कौन सा अपग्रेड आमंत्रण प्रवाह ट्रिगर किया जाएगा।

Play Services SDK - केवल प्रवाह ट्रिगरिंग

तृतीय पक्ष एसडीके आपको अपने ऐप या अपने स्वयं के ओटीए नोटिफिकेशन से अपग्रेड आमंत्रण प्रवाह को ट्रिगर करने में सक्षम बनाता है। अपग्रेड आमंत्रण प्रवाह को सक्रिय करने के लिए किसी तृतीय पक्ष बाहरी एपीआई का उपयोग करें। यह विधि कम अनुशंसित है.

आवश्यक शर्तें

अपना ऐप तैयार करने के लिए, निम्नलिखित अनुभागों में दिए गए चरणों को पूरा करें।

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

  • 14 या उच्चतर का एक minSdkVersion
  • 28 या उच्चतर का compileSdkVersion

अपना ऐप कॉन्फ़िगर करें

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

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

भण्डार. 2. Google ग्रोथ एसडीके के लिए निर्भरता को अपने मॉड्यूल की ऐप-स्तरीय ग्रैडल फ़ाइल में जोड़ें, सामान्यतः 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. क्लाइंट को प्रारंभ करने के लिए, अपग्रेडपार्टी क्लास का उपयोग करें:

    import com.google.android.gms.growth.UpgradeParty;
    UpgradeParty.getClient(activity);
    
  2. गतिविधि पैरामीटर आरंभिक गतिविधि ऑब्जेक्ट होना चाहिए।

एपीआई कार्य

परिणामी अपग्रेडपार्टीक्लाइंट निम्नलिखित कार्यक्षमता को उजागर करता है।

अपग्रेडआमंत्रण के लिए पात्र है

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

एक कार्य लौटाता है जो एसिंक्रोनस रूप से सत्यापित करता है कि उपयोगकर्ता अपग्रेड आमंत्रण के लिए पात्र है या नहीं। परिणामी बूलियन मान इंगित करता है कि उपयोगकर्ता पात्र है या नहीं।

अपग्रेडआमंत्रण का आह्वान करें

Task<Void> invokeUpgradeInvite();

अपग्रेड आमंत्रण गतिविधि को आमंत्रित करता है। परिणामी _टास्क _ऑब्जेक्ट इंगित करता है कि गतिविधि शुरू करते समय कोई त्रुटि हुई या नहीं।

त्रुटि कोड

com.google.android.gms.common.api.ApiException प्रकार के अपवाद के साथ दोनों API विधियाँ विफल हो सकती हैं। ऐसे मामलों में, कॉल करने वाले से बाद में पुनः प्रयास करने की अपेक्षा की जाती है। अपेक्षित सामान्य स्थिति कोड ) में शामिल हैं:

  • INTERNAL_ERROR - अंतर्निहित तर्क के प्रवाह में किसी भी त्रुटि के लिए
  • टाइमआउट - यदि अनुरोध को समय पर निपटाया नहीं जा सका
  • API_NOT_CONNECTED - जब एपीआई उपलब्ध नहीं है (अर्थात, अपग्रेडपार्टी मॉड्यूल अभी तक तैयार नहीं है)
  • NETWORK_ERROR - नेटवर्क त्रुटियों के कारण अनुरोध को नियंत्रित नहीं किया जा सका
  • DEVELOPER_ERROR - कॉलिंग पैकेज को अपग्रेडपार्टी एपीआई तक पहुंचने की अनुमति नहीं है

उदाहरण एसडीके उपयोग

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