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

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

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

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

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

प्लेटफार्म बदलता है

DEVICE_DEMO_MODE सेट करें

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

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 को सक्षम करता है।

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

रिटेल डेमो मोड के लिए प्रीलोडेड ऐप्स को कस्टमाइज़ करें

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

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

सिस्टम अपडेट

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

खुदरा डेमो ऐप

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

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

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

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

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

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

  • PackageInstaller के माध्यम से पैकेज स्थापित करें।

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

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

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

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

  • सेटिंग्स.ग्लोबल , सेटिंग्स.सिक्योर और सेटिंग्स.सिस्टम सेटिंग्स का एक अनुमत सूचीबद्ध सेट सेट करें।

  • अनुमति नीति को 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 में रिटेलडेमो ऐप में नेटवर्क कनेक्टिविटी होने पर डेमो वीडियो को अपडेट करने की क्षमता है। वीडियो डाउनलोड करने के लिए URL को RetailDemo ऐप में निम्नलिखित स्ट्रिंग मान को ओवरराइड करके कॉन्फ़िगर किया जा सकता है।

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

यदि अलग-अलग क्षेत्रों में अलग-अलग वीडियो का उपयोग करने की आवश्यकता है, तो res/values-*/strings.xml में स्थानीय-विशिष्ट स्ट्रिंग संसाधनों का उपयोग करके अलग-अलग डाउनलोड यूआरएल कॉन्फ़िगर किया जा सकता है। उदाहरण के लिए, यदि संयुक्त राज्य अमेरिका और ग्रेट ब्रिटेन में अलग-अलग वीडियो का उपयोग करने की आवश्यकता है, तो संबंधित डाउनलोड यूआरएल को 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>
    

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

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

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

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

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

मान्यकरण

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

डेमो सत्र

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

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

Retail demo mode

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

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

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

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

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

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

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

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

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

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

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

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