रीटेल डेमो मोड

Android 7.1.1 ने रीटेल डेमो मोड के लिए, सिस्टम-लेवल की सुविधा पेश की ग्राहक, खुदरा स्टोर में इस्तेमाल किए जा रहे डिवाइसों की जांच कर सकते हैं. डिवाइस सेट अप हो गए हैं रीटेल डेमो के लिए, डिवाइस के मालिक के ऐप्लिकेशन का इस्तेमाल करके यह पक्का करेगा कि डिवाइस का इस्तेमाल डेमो मोड वाले कुछ ऐप्लिकेशन तक ही सीमित हैं. असली उपयोगकर्ताओं के पास रीटेल डेमो डिवाइस पर निजी खाते से साइन इन किया है. Android 8.1 इस सहायता को बदलकर यह करता है: बनाएं DevicePolicyManager के ज़रिए डेमो उपयोगकर्ता हासिल करना createAndManageUser एपीआई. इससे स्टैंडर्ड रीटेल मोड में, OEM को काफ़ी बेहतर तरीके से कस्टमाइज़ किया जा सकता है डेमो डिवाइस पर यूज़र मैनेजमेंट और डिवाइस नीति मैनेजमेंट की शर्तें.

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

Android 8.1 और उसके बाद के वर्शन में लागू करना

इस सेक्शन में, प्लैटफ़ॉर्म को बेहतर बनाने के बारे में बताया गया है. साथ ही, रीटेल डेमो के बारे में भी बताया गया है Android 8.1 और उसके बाद के वर्शन पर काम करता है.

प्लैटफ़ॉर्म में हुए बदलाव

Device_DEMO_mode सेट करें

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

RetailDemoModeService को चालू करें

रीटेल डेमो मोड लागू करने वाले डिवाइसों में, सेटअप विज़र्ड दुनिया भर में सेट हो रहा है Global.DEVICE_DEMO_MODE से true में यह बताने के लिए कि डिवाइस रीटेल मोड में चला गया है. कुल इस सेटिंग को देखने पर, RetailDemoModeService, डेमो उपयोगकर्ता बनाता है. साथ ही, उपयोगकर्ता 0 के चालू होने पर, इस सेटिंग पर स्विच करता है. इसके बाद, यह सुविधा चालू होती है किसी ओवरले संसाधन में मौजूद कस्टम लॉन्चर के बारे में बताता है और SUW को बंद कर देता है. प्रणाली रीटेल मोड के पहलुओं को मैनेज करने के लिए, Server और 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>

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

कस्टम लॉन्चर के कस्टम कॉम्पोनेंट को डिफ़ॉल्ट रूप से, 'बंद है' के तौर पर मार्क करना ज़रूरी है ताकि यह उन स्थितियों में न दिखे जो डेमो वाले नहीं हैं. डेमो में, System जबconfig_demoModeLauncherComponent नया डेमो सेशन.

सेटअप विज़र्ड पहले बताए गए वीडियो को भी देखता है, ताकि रीटेल मोड में जाने का खर्च नहीं उठाता है. SUW में बदलाव करके यह देखा जा सकता है कि OEM का खास संकेत है कि अगर वीडियो इसका हिस्सा नहीं है, तो रीटेल मोड काम करेगा देखें. अगर सिस्टम A/B पार्टीशन हैं, तो सिस्टम B को /preloads/demo पर डेमो वीडियो शामिल होना चाहिए. इसे कॉपी किया जाता है पहले बूट करने पर /data/preloads/demo.

रीटेल डेमो मोड के लिए, पहले से लोड किए गए ऐप्लिकेशन को पसंद के मुताबिक बनाएं

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

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

सिस्टम अपडेट

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

रीटेल डेमो ऐप्लिकेशन

डिवाइस के मालिक के हिसाब से रीटेल डेमो मोड को लागू करने के लिए डिवाइस नीति नियंत्रक ऐप को डिवाइस मालिक के रूप में सेट करना होगा. एओएसपी में एक RetailDemo ऐप्लिकेशन का रेफ़रंस शामिल होता है /packages/apps/RetailDemo में लागू करें.

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

  • डिवाइस के मालिक के सभी ऐप्लिकेशन को DeviceAdminReceiver कॉम्पोनेंट, जो सभी के लिए ऑथराइज़ेशन टोकन के तौर पर काम करता है DevicePolicyManager एपीआई. कॉम्पोनेंट में android.permission.BIND_DEVICE_ADMIN लगा होना चाहिए की अनुमति है, तो अनुरोध की गई खास नीतियों को मेटाडेटा के तौर पर शामिल करें, और android.app.action.PROFILE_PROVISIONING_COMPLETE को फ़िल्टर करें और android.app.action.DEVICE_ADMIN_ENABLED इंटेंट.

  • DevicePolicyManager#MAKE_USER_DEMO फ़्लैग, जो खास डेमो-टाइप उपयोगकर्ता बनाने के लिए सेट किया गया है, वह छिपा हुआ एपीआई है. यह फ़्लैग की वैल्यू 0x4 है.

  • डिवाइस का मालिकाना हक, सिर्फ़ डिवाइस मैनेजमेंट की भूमिका के ज़रिए असाइन किया जाना चाहिए या मैनेज किया जा रहा प्रावधान है है.

DevicePolicyManager में मौजूद एपीआई अलग-अलग डिवाइस को लागू करने के लिए, डिवाइस के मालिक (DO) और प्रोफ़ाइल के मालिक (PO) को क्लास चालू करें की नीतियों के बारे में ज़्यादा जानें. DevicePolicyManager के कुछ उदाहरण रीटेल डेमो मोड के लिए लागू होने वाले फ़ंक्शन की सूची यहां दी गई है.

  • उपयोगकर्ता बनाना और उन्हें मैनेज करना.

  • डिवाइस को फिर से चालू करें.

  • LockTask की अनुमति वाले पैकेज सेट करें.

  • पैकेज इंस्टालर की मदद से पैकेज इंस्टॉल करें.

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

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

  • कीगार्ड बंद करें.

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

  • Settings.Global का एक सेट सेट करें जिसे अनुमति वाली सूची में शामिल किया गया है, Settings.सिक्योर, और Settings.सिस्टम सेटिंग.

  • अनुमति नीति को PERMISSION_POLICY_AUTO_GRANT पर सेट करें, जो अपने-आप सभी रनटाइम की अनुमतियां दे देता है. अनुमतियां भी दी जा सकती हैं ज़्यादा सटीक तरीके से: किसी एक ऐप्लिकेशन के लिए सिर्फ़ एक अनुमति. यह इन पर लागू नहीं होता है ऐप्लिकेशन की कार्रवाइयों की अनुमतियां, जो उपयोगकर्ताओं को अब भी हर उपयोगकर्ता को हर ऐप्लिकेशन के हिसाब से देनी होंगी.

  • यहां बताए गए तरीके के मुताबिक, रीटेल मोड के लिए उपयोगकर्ता की पाबंदियां सेट करें उपयोगकर्ता मैनेजर के बारे में यहां बताया गया है.

    • 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 ऐप्लिकेशन अगर नेटवर्क कनेक्टिविटी मौजूद है, तो डेमो वीडियो को अपडेट किया जा सकता है. जिस यूआरएल से वीडियो डाउनलोड करना है उसे कॉन्फ़िगर किया जा सकता है. इसके लिए, नीचे दिए गए पैरामीटर पर जाएं 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>
    

हर डिवाइस को फिर से चालू करने पर, यह वीडियो ज़्यादा से ज़्यादा एक बार डाउनलोड होता है. जब डिवाइस पर वीडियो चल रहा है और RetailDemo ऐप्लिकेशन बैकग्राउंड में देखता है अगर डाउनलोड करने का यूआरएल दिया गया है और यूआरएल पर मौजूद वीडियो, 'डाउनलोड किए गए वीडियो' के यूआरएल वाले वीडियो से नया है चलाया जा रहा है.

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

डेमो वीडियो से जुड़े दिशा-निर्देश

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

Android Developer की परिभाषाएं देखें को ऐक्सेस करने की अनुमति मिलती है. Device Policy Manager API के दस्तावेज़ और डिवाइस के मालिक के तौर पर इस्तेमाल किए जाने वाले सैंपल हमारा वीडियो देखें.

पुष्टि करें

सीटीएस में रीटेल डेमो मोड शामिल नहीं है, क्योंकि यह एक वैकल्पिक सुविधा है. टेस्ट करना डेमो ऐप्लिकेशन को मैन्युअल तौर पर या यूनिट टेस्ट की मदद से पूरा किया जाना चाहिए.

डेमो सेशन

डेमो सेशन का सेटअप

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

रीटेल डेमो मोड

दूसरा डायग्राम. रीटेल डेमोंस्ट्रेशन मोड

डेमो सेशन दिखाएं

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

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

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

इसके अलावा, कुछ ग्लोबल सेटिंग के ऐक्सेस पर भी रोक लगाई गई है. ये सेटिंग इस सेटिंग पर असर डाल सकती हैं रीटेल मोड में काम करने के लिए:

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

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

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

  • स्क्रीन की रोशनी
  • ऑटो-रोटेट
  • फ़्लैशलाइट
  • भाषा
  • सुलभता

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

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