खुदरा डेमो मोड

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

एंड्रॉइड 7.1.1 ने रिटेल डेमो मोड के लिए सिस्टम-लेवल सपोर्ट पेश किया ताकि ग्राहक रिटेल स्टोर्स पर काम कर रहे उपकरणों की जांच कर सकें। यह सुनिश्चित करने के लिए डिवाइस मालिक ऐप का उपयोग करके खुदरा डेमो के लिए डिवाइस सेट अप किए जाते हैं कि डिवाइस का उपयोग केवल कुछ डेमो मोड ऐप तक ही सीमित है। अंतिम उपयोगकर्ता खुदरा डेमो डिवाइस पर व्यक्तिगत खाता जोड़ने में सक्षम नहीं होना चाहिए। Android 8.1 DevicePolicyManager createAndManageUser API के माध्यम से डेमो उपयोगकर्ता बनाने के लिए इस समर्थन को संशोधित करता है। यह डेमो डिवाइस पर उपयोगकर्ता प्रबंधन और डिवाइस नीति प्रबंधन के संदर्भ में मानक खुदरा मोड में अधिक से अधिक OEM अनुकूलन की अनुमति देता है।

जबकि DevicePolicyManager API का उपयोग Android 8.1 से पहले के संस्करणों पर किया जा सकता है, डेमो-प्रकार के उपयोगकर्ता ( DevicePolicyManager.MAKE_USER_DEMO ) createAndManageUser API के साथ संस्करण 8.0 और पहले के संस्करण में नहीं बनाए जा सकते हैं।

Android 8.1 और बाद में कार्यान्वयन

यह खंड प्लेटफ़ॉर्म एन्हांसमेंट पर प्रकाश डालता है और एंड्रॉइड 8.1 और बाद में रिटेल डेमो ऐप का वर्णन करता है।

प्लेटफार्म परिवर्तन

DEVICE_DEMO_MODE सेट करें

उपकरण स्वामी आधारित रिटेल डेमो मोड को लागू करने वाले डिवाइस को प्रावधान करने से पहले Settings.Global.DEVICE_DEMO_MODE को 1 पर सेट करना होगा, ताकि यह इंगित किया जा सके कि डिवाइस को रिटेल डेमो मोड के लिए प्रावधान किया जा रहा है। SystemServer इस फ़्लैग का उपयोग खुदरा मोड के पहलुओं को प्रबंधित करने के लिए करता है, जैसे कि पावर प्रोफ़ाइल और SystemUI।

RetailDemoModeService सक्षम करें

रिटेल डेमो मोड को लागू करने वाले उपकरणों में, सेटअप विज़ार्ड एक वैश्विक सेटिंग Global.DEVICE_DEMO_MODE को true इंगित करने के लिए सेट करता है कि डिवाइस खुदरा मोड में प्रवेश कर चुका है। इस सेटिंग को देखने के बाद, RetailDemoModeService एक डेमो उपयोगकर्ता बनाता है और जब उपयोगकर्ता 0 प्रारंभ होता है, तो इसे स्विच करता है, ओवरले संसाधन में निर्दिष्ट कस्टम लॉन्चर को सक्षम करता है, और SUW को अक्षम करता है। सिस्टम सर्वर और SystemUI खुदरा मोड के पहलुओं को प्रबंधित करने के लिए भी इस फ़्लैग का उपयोग करते हैं।

कस्टम लॉन्चर या वीडियो प्लेयर सेट करें

डिवाइस निर्माता निम्नानुसार config.xml फ़ाइल में निर्दिष्ट फ्रेमवर्क संसाधन config_demoModeLauncherComponent को ओवरराइड करके एक कस्टम लॉन्चर निर्दिष्ट कर सकते हैं।

<!-- Component that is the default launcher when Retail Mode is enabled. -->
<string name="config_demoModeLauncherComponent">com.android.retaildemo/.DemoPlayer</string>

/packages/apps/RetailDemo पर स्थित रिटेल डेमोप्लेयर ऐप एंड्रॉइड ओपन सोर्स प्रोजेक्ट (एओएसपी) में डिफ़ॉल्ट कस्टम लॉन्चर है। ऐप एक डिवाइस विभाजन में एक वीडियो की तलाश करता है जैसे /data/preloads/demo/retail_demo.mp4 और इसे एक लूप में चलाता है। जब उपयोगकर्ता स्क्रीन को छूता है, तो कस्टम लॉन्चर अपने गतिविधि घटक को अक्षम कर देता है, जिससे डिफ़ॉल्ट सिस्टम लॉन्चर शुरू हो जाता है।

कस्टम लॉन्चर में इसके कस्टम घटक को डिफ़ॉल्ट रूप से अक्षम के रूप में चिह्नित किया जाना चाहिए ताकि यह गैर-डेमो परिदृश्यों में दिखाई न दे। डेमो परिदृश्य में, सिस्टम सर्वर एक नया डेमो सत्र शुरू करते समय निर्दिष्ट config_demoModeLauncherComponent को सक्षम करता है।

सेटअप विज़ार्ड खुदरा मोड में प्रवेश करने के लिए एक सामर्थ्य प्रदान करने के लिए पहले उल्लिखित वीडियो को भी देखता है। यदि वीडियो डेमो का हिस्सा नहीं है तो एसयूडब्ल्यू को कुछ अन्य ओईएम-विशिष्ट संकेत देखने के लिए संशोधित किया जा सकता है कि खुदरा मोड समर्थित है। यदि सिस्टम A/B विभाजन हैं, तो सिस्टम B विभाजन में /preloads/demo पर डेमो वीडियो होना चाहिए। यह पहले बूट पर/डेटा/प्रीलोड/डेमो में कॉपी हो जाता है।

रिटेल डेमो मोड के लिए पहले से लोड किए गए ऐप्स को अनुकूलित करें

पहले से लोड किए गए ऐप्स खुदरा डेमो मोड के लिए UserManager.isDemoUser() API को कॉल करके अपने अनुभव को अनुकूलित कर सकते हैं ताकि यह देखा जा सके कि ऐप डेमो वातावरण में लॉन्च किया गया है या नहीं।

डेमो उपयोगकर्ता में कुछ प्रतिबंध सेट किए गए हैं, प्रबंधित डिवाइस या प्रोफ़ाइल नीतियों के समान जो ऐप्स और उपयोगकर्ताओं को कुछ संचालन करने से रोकते हैं। इनमें से एक प्रतिबंध DISALLOW_MODIFY_ACCOUNTS है। इस प्रतिबंध के साथ, खाता प्रबंधक और सेटिंग खाते जोड़ने की अनुमति नहीं देते हैं। कुछ Google ऐप्स इस प्रतिबंध पर प्रतिक्रिया देते हैं और एक त्रुटि संदेश दिखाते हैं, और अन्य किसी खाते (जैसे YouTube और फ़ोटो) के लिए संकेत नहीं देंगे। हम अनुशंसा करते हैं कि OEM ऐप्स यह भी जांचें कि क्या DISALLOW_MODIFY_ACCOUNTS सेट है और तदनुसार परिदृश्य को संभालें।

सिस्टम अपडेट

डिफ़ॉल्ट रूप से, जब खुदरा मोड सक्षम होता है, तो डिवाइस नीति स्वचालित रूप से ओवर-द-एयर (OTA) अपडेट पर सेट हो जाती है। खुदरा उपकरण बिना उपयोगकर्ता सहभागिता के अपडेट (बैटरी थ्रेसहोल्ड का सम्मान करते हुए) डाउनलोड, रीबूट और इंस्टॉल करेंगे।

खुदरा डेमो ऐप

डिवाइस स्वामी आधारित रिटेल डेमो मोड कार्यान्वयन के लिए डिवाइस स्वामी के रूप में सेट किए जाने के लिए डिवाइस नीति नियंत्रक ऐप की आवश्यकता होती है। AOSP में /packages/apps/RetailDemo में एक संदर्भ RetailDemo ऐप कार्यान्वयन शामिल है।

डिवाइस के मालिक ऐप्स को उन्नत विशेषाधिकारों या सिस्टम इमेज पर प्री-इंस्टॉलेशन की आवश्यकता नहीं होती है और इसे सेटअप या प्रोविजनिंग प्रक्रिया के दौरान डाउनलोड किया जा सकता है। वे ज्यादातर निम्नलिखित अंतरों के साथ पारंपरिक ऐप की तरह लागू होते हैं:

  • सभी डिवाइस स्वामी ऐप्स को DeviceAdminReceiver घटक का विस्तार करना चाहिए, जो सभी DevicePolicyManager API के लिए प्राधिकरण टोकन के रूप में कार्य करता है। घटक में android.permission.BIND_DEVICE_ADMIN अनुमति होनी चाहिए, अनुरोधित विशेष नीतियों को मेटाडेटा के रूप में शामिल करें, और android.app.action.PROFILE_PROVISIONING_COMPLETE और android.app.action.DEVICE_ADMIN_ENABLED इंटेंट को फ़िल्टर करें।

  • DevicePolicyManager#MAKE_USER_DEMO फ़्लैग, जो विशेष डेमो-प्रकार के उपयोगकर्ता बनाने के लिए सेट किया गया है, एक छिपा हुआ API है। इस फ़्लैग का मान स्थिरांक 0x4 है।

  • डिवाइस का स्वामित्व केवल डिवाइस प्रबंधन रोल होल्डर या ManagedProvisioning ऐप के माध्यम से असाइन किया जाना चाहिए।

DevicePolicyManager क्लास में API विभिन्न डिवाइस नीतियों को लागू करने के लिए डिवाइस ओनर (DO) और प्रोफाइल ओनर (PO) को सक्षम करते हैं। खुदरा डेमो मोड के लिए लागू कुछ DevicePolicyManager फ़ंक्शन निम्नानुसार सूचीबद्ध हैं।

  • उपयोगकर्ता बनाएँ और प्रबंधित करें।

  • डिवाइस को रीबूट करें।

  • लॉकटास्क अनुमत पैकेज सेट करें।

  • PackageInstaller के द्वारा संकुल अधिष्ठापित करें.

  • पैकेज को अनइंस्टॉल होने से ब्लॉक करें।

  • स्वचालित सिस्टम अपडेट सक्षम करें। डिवाइस स्वचालित रूप से ओटीए अपडेट डाउनलोड और लागू करेंगे।

  • कीगार्ड को अक्षम करें।

  • पासवर्ड या फ़िंगरप्रिंट सेट करने से रोकें।

  • अनुमति दी गई सूची में Settings.Global , Settings.Secure , और Settings.System सेटिंग का सेट सेट करें।

  • अनुमति नीति को PERMISSION_POLICY_AUTO_GRANT पर सेट करें, जो स्वचालित रूप से सभी रनटाइम अनुमतियाँ प्रदान करती है। अनुमतियाँ और अधिक संकीर्ण रूप से भी दी जा सकती हैं: एकल ऐप के लिए एकल अनुमति। यह ऐप-ऑप्स अनुमतियों पर लागू नहीं होता है, जो उपयोगकर्ताओं को अभी भी प्रति-उपयोगकर्ता, प्रति-ऐप के आधार पर देना होगा।

  • UserManager में निम्नानुसार परिभाषित खुदरा मोड के लिए प्रासंगिक उपयोगकर्ता प्रतिबंध सेट करें।

    • DISALLOW_MODIFY_ACCOUNTS
    • DISALLOW_USB_FILE_TRANSFER
    • DISALLOW_DEBUGGING_FEATURES
    • DISALLOW_CONFIG_WIFI
    • DISALLOW_CONFIG_BLUETOOTH
    • DISALLOW_INSTALL_UNKNOWN_SOURCES
    • DISALLOW_CONFIG_MOBILE_NETWORKS

वेब का उपयोग करके डेमो वीडियो अपडेट करें

/packages/apps/RetailDemo में RetailDemo ऐप में नेटवर्क कनेक्टिविटी होने पर डेमो वीडियो को अपडेट करने की क्षमता है। वीडियो को डाउनलोड करने के लिए URL को RetailDemo ऐप में निम्न स्ट्रिंग मान को ओवरराइड करके कॉन्फ़िगर किया जा सकता है।

<!-- URL where the retail demo video can be downloaded from. -->
<string name="retail_demo_video_download_url"></string>

यदि अलग-अलग क्षेत्रों में अलग-अलग वीडियो का उपयोग करने की आवश्यकता है, तो res/values-*/strings.xml में स्थान-विशिष्ट स्ट्रिंग संसाधनों का उपयोग करके अलग-अलग डाउनलोड URL कॉन्फ़िगर किए जा सकते हैं। उदाहरण के लिए, यदि संयुक्त राज्य अमेरिका और ग्रेट ब्रिटेन में अलग-अलग वीडियो का उपयोग करने की आवश्यकता है, तो संबंधित डाउनलोड URL को res/values-en-rUS/strings.xml और res/values-en-rGB/strings.xml में रखा जा सकता है। , क्रमशः, निम्नानुसार दिखाया गया है।

  • Res/values-en-rUS/strings.xml में:

    <string name="retail_demo_video_download_url">download URL for US video goes here</string>
    
  • Res/values-en-rGB/strings.xml में:

    <string name="retail_demo_video_download_url">download URL for UK video goes here</string>
    

यह वीडियो हर डिवाइस को फिर से चालू करने के लिए ज़्यादा से ज़्यादा एक बार डाउनलोड किया जाता है। जब डिवाइस पर वीडियो चलाया जा रहा हो, तो RetailDemo ऐप पृष्ठभूमि में जांच करता है कि क्या डाउनलोड URL प्रदान किया गया है और URL पर वीडियो चलाए जा रहे वीडियो से नया है।

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

डेमो वीडियो दिशानिर्देश

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

अधिक जानकारी के लिए उपयोगकर्ताओं, प्रोफाइल और खातों की Android डेवलपर परिभाषाएं , डिवाइस नीति प्रबंधक API दस्तावेज़ और नमूना डिवाइस स्वामी ऐप देखें।

मान्यकरण

सीटीएस में रिटेल डेमो मोड शामिल नहीं है क्योंकि यह एक वैकल्पिक सुविधा है। परीक्षण मैन्युअल रूप से या डेमो ऐप के लिए इकाई परीक्षणों के साथ आयोजित किया जाना चाहिए।

डेमो सेशन

डेमो सत्र की स्थापना

खुदरा डेमो उपकरण फ़ैक्टरी से डेमो मोड के लिए कॉन्फ़िगर किए जाने पर खुदरा डेमो मोड में बूट हो सकते हैं। वैकल्पिक रूप से, खुदरा कर्मचारी सीधे सेटअप विज़ार्ड से खुदरा मोड को सक्षम कर सकते हैं।

Retail demo mode

चित्र 2. खुदरा प्रदर्शन मोड

डेमो सत्र प्रदर्शित करें

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

खुदरा मोड की अखंडता को बनाए रखने के लिए, कीगार्ड अक्षम है और त्वरित सेटिंग्स से कुछ क्रियाएं जो खुदरा मोड को प्रतिकूल रूप से प्रभावित कर सकती हैं, को भी अस्वीकार कर दिया गया है, जिसमें निम्न शामिल हैं।

  • हवाई जहाज मोड टॉगल।
  • वाई-फाई एक्सेस पॉइंट्स (सेटिंग्स) को हटाना या संशोधित करना।
  • वाहक बदलना (सेटिंग्स)।
  • हॉटस्पॉट (सेटिंग्स) को कॉन्फ़िगर करना।
  • उपयोगकर्ता स्विचिंग।

इसके अतिरिक्त, कुछ वैश्विक सेटिंग्स तक पहुंच भी अवरुद्ध है जो निम्नलिखित को अक्षम करके रीटेल मोड को प्रभावित कर सकती हैं:

  • वाईफाई सेटिंग्स।
  • सेलुलर नेटवर्क कॉन्फ़िगरेशन विकल्प, विशेष रूप से हॉटस्पॉट।
  • ब्लूटूथ कॉन्फ़िगरेशन।
  • बैकअप और रीसेट, दिनांक और समय, और मोबाइल नेटवर्क (वे बिल्कुल दिखाई नहीं देते हैं)।

यदि उपयोगकर्ता कुछ समय (डिफ़ॉल्ट रूप से 90 सेकंड) के लिए निष्क्रिय रहता है, तो खुदरा मोड उपयोगकर्ता को सत्र से बाहर निकलने या जारी रखने के लिए संकेत देने के लिए एक सिस्टम डायलॉग दिखाता है। यदि उपयोगकर्ता बाहर निकलने का विकल्प चुनता है या पांच सेकंड के लिए कोई प्रतिक्रिया नहीं होती है, तो खुदरा मोड वर्तमान डेमो उपयोगकर्ता को हटा देता है, एक नए डेमो उपयोगकर्ता पर स्विच करता है, और मूल वीडियो के माध्यम से फिर से लूप करता है। यदि पावर बटन का उपयोग करके स्क्रीन बंद कर दी जाती है, तो यह कुछ सेकंड के बाद स्वचालित रूप से वापस आ जाती है।

डेमो सत्र से बाहर निकलने के बाद, उपकरण स्वयं को म्यूट कर देते हैं और कुछ वैश्विक सेटिंग्स को रीसेट कर देते हैं, जिसमें निम्न शामिल हैं:

  • चमक
  • ऑटो रोटेशन
  • टॉर्च
  • भाषा
  • सरल उपयोग

रिटेल डेमो मोड से बाहर निकलें

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