খুচরা ডেমো মোড

অ্যান্ড্রয়েড 7.1.1 রিটেল ডেমো মোডের জন্য সিস্টেম-স্তরের সমর্থন চালু করেছে যাতে গ্রাহকরা খুচরা দোকানে ডিভাইসগুলিকে পরীক্ষা করতে পারেন৷ ডিভাইসের ব্যবহার শুধুমাত্র নির্দিষ্ট ডেমো মোড অ্যাপ্লিকেশানগুলিতে সীমাবদ্ধ রয়েছে তা নিশ্চিত করার জন্য একটি ডিভাইস মালিক অ্যাপ ব্যবহার করে ডিভাইসগুলি খুচরা ডেমোর জন্য সেট আপ করা হয়৷ শেষ ব্যবহারকারীরা খুচরা ডেমো ডিভাইসে একটি ব্যক্তিগত অ্যাকাউন্ট যোগ করতে সক্ষম হবেন না। Android 8.1 DevicePolicyManager createAndManageUser API এর মাধ্যমে ডেমো ব্যবহারকারী তৈরি করতে এই সমর্থনটিকে সংশোধন করে। এটি ডেমো ডিভাইসে ব্যবহারকারী পরিচালনা এবং ডিভাইস নীতি পরিচালনার ক্ষেত্রে স্ট্যান্ডার্ড খুচরা মোডে অনেক বেশি OEM কাস্টমাইজেশনের অনুমতি দেয়।

Android 8.1-এর আগের সংস্করণগুলিতে DevicePolicyManager API ব্যবহার করা গেলেও, ডেমো-টাইপ ব্যবহারকারী ( DevicePolicyManager.MAKE_USER_DEMO ) 8.0 এবং তার আগের সংস্করণে createAndManageUser API দিয়ে তৈরি করা যাবে না৷

Android 8.1 এবং পরবর্তীতে বাস্তবায়ন

এই বিভাগটি প্ল্যাটফর্মের উন্নতিগুলি হাইলাইট করে এবং Android 8.1 এবং পরবর্তীতে খুচরা ডেমো অ্যাপের বর্ণনা দেয়।

প্ল্যাটফর্ম পরিবর্তন

DEVICE_DEMO_MODE সেট করুন

ডিভাইস মালিক ভিত্তিক খুচরো ডেমো মোড প্রয়োগকারী ডিভাইসগুলিকে অবশ্যই Settings.Global.DEVICE_DEMO_MODE সেট করতে হবে। সিস্টেম সার্ভার এই পতাকাটি খুচরা মোডের দিকগুলি পরিচালনা করতে ব্যবহার করে, যেমন পাওয়ার প্রোফাইল এবং সিস্টেমইউআই।

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- এ অবস্থিত খুচরা ডেমো ডেমোপ্লেয়ার অ্যাপটি অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্টে (AOSP) ডিফল্ট কাস্টম লঞ্চার। অ্যাপটি ডিভাইস পার্টিশনে একটি ভিডিও খোঁজে যেমন /data/preloads/demo/retail_demo.mp4 এবং এটি একটি লুপে চালায়। ব্যবহারকারী যখন স্ক্রীন স্পর্শ করে, কাস্টম লঞ্চার তার কার্যকলাপের উপাদানকে নিষ্ক্রিয় করে, যার ফলে ডিফল্ট সিস্টেম লঞ্চার শুরু হয়।

কাস্টম লঞ্চারে অবশ্যই এর কাস্টম উপাদান ডিফল্টরূপে অক্ষম হিসাবে চিহ্নিত থাকতে হবে যাতে এটি নন-ডেমো পরিস্থিতিতে প্রদর্শিত না হয়। ডেমো পরিস্থিতিতে, সিস্টেম সার্ভার একটি নতুন ডেমো সেশন শুরু করার সময় নির্দিষ্ট config_demoModeLauncherComponent সক্রিয় করে।

সেটআপ উইজার্ড খুচরা মোডে প্রবেশ করার জন্য একটি সামর্থ্য প্রদানের জন্য পূর্বে উল্লিখিত ভিডিওটিও সন্ধান করে। ভিডিওটি ডেমোর অংশ না হলে খুচরা মোড সমর্থিত হয় এমন কিছু অন্য OEM-নির্দিষ্ট চিহ্নের জন্য SUW পরিবর্তন করা যেতে পারে। যদি সিস্টেম A/B পার্টিশন থাকে, তাহলে সিস্টেম B পার্টিশনে অবশ্যই /preloads/demo-এ ডেমো ভিডিও থাকতে হবে। এটি প্রথম বুটে /data/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 ফাংশন নিম্নরূপ তালিকাভুক্ত করা হয়েছে।

  • ব্যবহারকারীদের তৈরি এবং পরিচালনা করুন.

  • ডিভাইসটি রিবুট করুন।

  • LockTask অনুমোদিত প্যাকেজ সেট করুন।

  • PackageInstaller এর মাধ্যমে প্যাকেজ ইনস্টল করুন।

  • আনইনস্টল হওয়া থেকে প্যাকেজ ব্লক করুন.

  • স্বয়ংক্রিয় সিস্টেম আপডেট সক্রিয় করুন. ডিভাইসগুলি স্বয়ংক্রিয়ভাবে ডাউনলোড করবে এবং OTA আপডেটগুলি প্রয়োগ করবে৷

  • কীগার্ড নিষ্ক্রিয় করুন।

  • পাসওয়ার্ড বা আঙুলের ছাপ সেট করা প্রতিরোধ করুন।

  • 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 অ্যাপটিতে নেটওয়ার্ক সংযোগ থাকলে ডেমো ভিডিও আপডেট করার ক্ষমতা রয়েছে। RetailDemo অ্যাপে নিম্নলিখিত স্ট্রিং মান ওভাররাইড করে ভিডিওটি ডাউনলোড করার URL কনফিগার করা যেতে পারে।

<!-- 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 অ্যাপটি ব্যাকগ্রাউন্ডে চেক করে যে ডাউনলোড ইউআরএল দেওয়া আছে কিনা এবং ইউআরএলে থাকা ভিডিওটি চালানোর চেয়ে নতুন।

যদি তাই হয়, RetailDemo অ্যাপ ডাউনলোড করে এবং ভিডিও চালাতে শুরু করে। একবার ভিডিও ডাউনলোড হয়ে গেলে, এটি সামনের সমস্ত ডেমো সেশনে চালানোর জন্য ব্যবহার করা হয়। পরবর্তী রিবুট না হওয়া পর্যন্ত কোনো চেক আবার ঘটবে না।

ডেমো ভিডিও নির্দেশিকা

ডেমোনস্ট্রেশন ভিডিওগুলি অবশ্যই পোর্ট্রেট লেআউটে বা ট্যাবলেট হলে, ডিভাইসের প্রাকৃতিক অভিযোজনে হতে হবে এবং পাঁচ সেকেন্ডের বেশি দৈর্ঘ্যের হতে পারে৷ বিষয়বস্তু অবশ্যই বার্ন-ইন হবে না, কারণ এটি প্রদর্শনের সময় ক্রমাগত চালানো হবে।

আরও তথ্যের জন্য ব্যবহারকারী, প্রোফাইল এবং অ্যাকাউন্ট, ডিভাইস পলিসি ম্যানেজার API ডকুমেন্টেশন এবং নমুনা ডিভাইস মালিক অ্যাপের Android বিকাশকারীর সংজ্ঞা দেখুন।

বৈধতা

CTS খুচরা ডেমো মোড কভার করে না কারণ এটি একটি ঐচ্ছিক বৈশিষ্ট্য। ডেমো অ্যাপের জন্য ম্যানুয়ালি বা ইউনিট টেস্টের মাধ্যমে পরীক্ষা করা উচিত।

ডেমো সেশন

ডেমো সেশনের সেটআপ

কারখানা থেকে ডেমো মোডের জন্য কনফিগার করা হলে খুচরা ডেমো ডিভাইসগুলি খুচরা ডেমো মোডে বুট হতে পারে। বিকল্পভাবে, খুচরা কর্মচারীরা সেটআপ উইজার্ড থেকে সরাসরি খুচরা মোড সক্ষম করতে পারে।

Retail demo mode

চিত্র 2. খুচরা প্রদর্শন মোড

ডেমো সেশন প্রদর্শন করুন

যখন ডিভাইসটি খুচরা মোডে প্রবেশ করে, তখন এটি একটি নতুন ডেমো ব্যবহারকারীতে স্যুইচ করে এবং বাস্তবায়নে বর্ণিত ওভারলে রিসোর্সে নির্দিষ্ট কাস্টম লঞ্চার স্বয়ংক্রিয়ভাবে শুরু করে। ডিফল্টরূপে, এই কাস্টম লঞ্চারটি পুনরাবৃত্তিতে ডেমো ভিডিও চালায় যতক্ষণ না ব্যবহারকারী একটি ডেমো ব্যবহারকারী সেশন শুরু করতে স্ক্রীন স্পর্শ করে। সেই সময়ে, কাস্টম লঞ্চার সিস্টেম লঞ্চার শুরু করে এবং তারপর প্রস্থান করে। OEMs কাস্টম লঞ্চারকে অতিরিক্তভাবে অন্য পরিষেবা বা প্রস্থান করার সময় ক্রিয়াকলাপ চালু করতে পরিবর্তন করতে পারে।

খুচরা মোডের অখণ্ডতা বজায় রাখার জন্য, কীগার্ড অক্ষম করা হয়েছে এবং দ্রুত সেটিংস থেকে কিছু ক্রিয়াকলাপ যা খুচরা মোডকে বিরূপভাবে প্রভাবিত করতে পারে সেগুলিও অনুমোদিত নয়, নিম্নলিখিতগুলি সহ।

  • বিমান মোড টগল।
  • Wi-Fi অ্যাক্সেস পয়েন্ট (সেটিংস) অপসারণ বা সংশোধন করা হচ্ছে।
  • ক্যারিয়ার পরিবর্তন করা (সেটিংস)।
  • হটস্পট কনফিগার করা হচ্ছে (সেটিংস)।
  • ব্যবহারকারী সুইচিং.

অতিরিক্তভাবে, কিছু গ্লোবাল সেটিংসেও অ্যাক্সেস ব্লক করা হয়েছে যা নিম্নলিখিতগুলি নিষ্ক্রিয় করে খুচরা মোডকে প্রভাবিত করতে পারে:

  • Wi-Fi সেটিংস।
  • সেলুলার নেটওয়ার্ক কনফিগারেশন বিকল্প, বিশেষ করে হটস্পট।
  • ব্লুটুথ কনফিগারেশন।
  • ব্যাকআপ এবং রিসেট, তারিখ এবং সময়, এবং মোবাইল নেটওয়ার্কগুলি (সেগুলি মোটেই দেখায় না)৷

যদি ব্যবহারকারী কিছু সময়ের জন্য নিষ্ক্রিয় থাকে (ডিফল্টরূপে 90 সেকেন্ড), রিটেল মোড ব্যবহারকারীকে সেশন থেকে প্রস্থান করতে বা চালিয়ে যেতে অনুরোধ করার জন্য একটি সিস্টেম ডায়ালগ দেখায়। ব্যবহারকারী যদি প্রস্থান করতে চান বা পাঁচ সেকেন্ডের জন্য কোনো প্রতিক্রিয়া না থাকলে, রিটেল মোড বর্তমান ডেমো ব্যবহারকারীকে সরিয়ে দেয়, একটি নতুন ডেমো ব্যবহারকারীর কাছে স্যুইচ করে এবং মূল ভিডিওটি আবার লুপ করে। পাওয়ার বোতাম ব্যবহার করে স্ক্রিনটি বন্ধ করা থাকলে, এটি কয়েক সেকেন্ড পরে স্বয়ংক্রিয়ভাবে ফিরে আসে।

একটি ডেমো সেশন থেকে প্রস্থান করার পরে, ডিভাইসগুলি নিজেকে নিঃশব্দ করে এবং নিম্নলিখিতগুলি সহ কিছু বিশ্বব্যাপী সেটিংস পুনরায় সেট করে:

  • উজ্জ্বলতা
  • স্বয়ংক্রিয় ঘূর্ণন
  • টর্চলাইট
  • ভাষা
  • অ্যাক্সেসযোগ্যতা

খুচরা ডেমো মোড থেকে প্রস্থান করুন

খুচরা মোড থেকে প্রস্থান করার জন্য, খুচরা কর্মীদের অবশ্যই নিশ্চিত করতে হবে যে ডেমো ডিভাইসটি ডিভাইস পরিচালনার অধীনে নথিভুক্ত করা হয়নি এবং বুট লোডার থেকে ডিভাইসটিকে ফ্যাক্টরি রিসেট করতে হবে।

,

অ্যান্ড্রয়েড 7.1.1 রিটেল ডেমো মোডের জন্য সিস্টেম-স্তরের সমর্থন চালু করেছে যাতে গ্রাহকরা খুচরা দোকানে ডিভাইসগুলিকে পরীক্ষা করতে পারেন৷ ডিভাইসের ব্যবহার শুধুমাত্র নির্দিষ্ট ডেমো মোড অ্যাপ্লিকেশানগুলিতে সীমাবদ্ধ রয়েছে তা নিশ্চিত করার জন্য একটি ডিভাইস মালিক অ্যাপ ব্যবহার করে ডিভাইসগুলি খুচরা ডেমোর জন্য সেট আপ করা হয়৷ শেষ ব্যবহারকারীরা খুচরা ডেমো ডিভাইসে একটি ব্যক্তিগত অ্যাকাউন্ট যোগ করতে সক্ষম হবেন না। Android 8.1 DevicePolicyManager createAndManageUser API এর মাধ্যমে ডেমো ব্যবহারকারী তৈরি করতে এই সমর্থনটিকে সংশোধন করে। এটি ডেমো ডিভাইসে ব্যবহারকারী পরিচালনা এবং ডিভাইস নীতি পরিচালনার ক্ষেত্রে স্ট্যান্ডার্ড খুচরা মোডে অনেক বেশি OEM কাস্টমাইজেশনের অনুমতি দেয়।

Android 8.1-এর আগের সংস্করণগুলিতে DevicePolicyManager API ব্যবহার করা গেলেও, ডেমো-টাইপ ব্যবহারকারী ( DevicePolicyManager.MAKE_USER_DEMO ) 8.0 এবং তার আগের সংস্করণে createAndManageUser API দিয়ে তৈরি করা যাবে না৷

Android 8.1 এবং পরবর্তীতে বাস্তবায়ন

এই বিভাগটি প্ল্যাটফর্মের উন্নতিগুলি হাইলাইট করে এবং Android 8.1 এবং পরবর্তীতে খুচরা ডেমো অ্যাপের বর্ণনা দেয়।

প্ল্যাটফর্ম পরিবর্তন

DEVICE_DEMO_MODE সেট করুন

ডিভাইস মালিক ভিত্তিক খুচরো ডেমো মোড প্রয়োগকারী ডিভাইসগুলিকে অবশ্যই Settings.Global.DEVICE_DEMO_MODE সেট করতে হবে। সিস্টেম সার্ভার এই পতাকাটি খুচরা মোডের দিকগুলি পরিচালনা করতে ব্যবহার করে, যেমন পাওয়ার প্রোফাইল এবং সিস্টেমইউআই।

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- এ অবস্থিত খুচরা ডেমো ডেমোপ্লেয়ার অ্যাপটি অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্টে (AOSP) ডিফল্ট কাস্টম লঞ্চার। অ্যাপটি ডিভাইস পার্টিশনে একটি ভিডিও খোঁজে যেমন /data/preloads/demo/retail_demo.mp4 এবং এটি একটি লুপে চালায়। ব্যবহারকারী যখন স্ক্রীন স্পর্শ করে, কাস্টম লঞ্চার তার কার্যকলাপের উপাদানকে নিষ্ক্রিয় করে, যার ফলে ডিফল্ট সিস্টেম লঞ্চার শুরু হয়।

কাস্টম লঞ্চারে অবশ্যই এর কাস্টম উপাদান ডিফল্টরূপে অক্ষম হিসাবে চিহ্নিত থাকতে হবে যাতে এটি নন-ডেমো পরিস্থিতিতে প্রদর্শিত না হয়। ডেমো পরিস্থিতিতে, সিস্টেম সার্ভার একটি নতুন ডেমো সেশন শুরু করার সময় নির্দিষ্ট config_demoModeLauncherComponent সক্রিয় করে।

সেটআপ উইজার্ড খুচরা মোডে প্রবেশ করার জন্য একটি সামর্থ্য প্রদানের জন্য পূর্বে উল্লিখিত ভিডিওটিও সন্ধান করে। ভিডিওটি ডেমোর অংশ না হলে খুচরা মোড সমর্থিত হয় এমন কিছু অন্য OEM-নির্দিষ্ট চিহ্নের জন্য SUW পরিবর্তন করা যেতে পারে। যদি সিস্টেম A/B পার্টিশন থাকে, তাহলে সিস্টেম B পার্টিশনে অবশ্যই /preloads/demo-এ ডেমো ভিডিও থাকতে হবে। এটি প্রথম বুটে /data/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 ফাংশন নিম্নরূপ তালিকাভুক্ত করা হয়েছে।

  • ব্যবহারকারীদের তৈরি এবং পরিচালনা করুন.

  • ডিভাইসটি রিবুট করুন।

  • LockTask অনুমোদিত প্যাকেজ সেট করুন।

  • PackageInstaller এর মাধ্যমে প্যাকেজ ইনস্টল করুন।

  • আনইনস্টল হওয়া থেকে প্যাকেজ ব্লক করুন.

  • স্বয়ংক্রিয় সিস্টেম আপডেট সক্রিয় করুন. ডিভাইসগুলি স্বয়ংক্রিয়ভাবে ডাউনলোড করবে এবং OTA আপডেটগুলি প্রয়োগ করবে৷

  • কীগার্ড নিষ্ক্রিয় করুন।

  • পাসওয়ার্ড বা আঙুলের ছাপ সেট করা প্রতিরোধ করুন।

  • 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 অ্যাপটিতে নেটওয়ার্ক সংযোগ থাকলে ডেমো ভিডিও আপডেট করার ক্ষমতা রয়েছে। RetailDemo অ্যাপে নিম্নলিখিত স্ট্রিং মান ওভাররাইড করে ভিডিওটি ডাউনলোড করার URL কনফিগার করা যেতে পারে।

<!-- 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 অ্যাপটি ব্যাকগ্রাউন্ডে চেক করে যে ডাউনলোড ইউআরএল দেওয়া আছে কিনা এবং ইউআরএলে থাকা ভিডিওটি চালানোর চেয়ে নতুন।

যদি তাই হয়, RetailDemo অ্যাপ ডাউনলোড করে এবং ভিডিও চালাতে শুরু করে। একবার ভিডিও ডাউনলোড হয়ে গেলে, এটি সামনের সমস্ত ডেমো সেশনে চালানোর জন্য ব্যবহার করা হয়। পরবর্তী রিবুট না হওয়া পর্যন্ত কোনো চেক আবার ঘটবে না।

ডেমো ভিডিও নির্দেশিকা

ডেমোনস্ট্রেশন ভিডিওগুলি অবশ্যই পোর্ট্রেট লেআউটে বা ট্যাবলেট হলে, ডিভাইসের প্রাকৃতিক অভিযোজনে হতে হবে এবং পাঁচ সেকেন্ডের বেশি দৈর্ঘ্যের হতে পারে৷ বিষয়বস্তু অবশ্যই বার্ন-ইন হবে না, কারণ এটি প্রদর্শনের সময় ক্রমাগত চালানো হবে।

আরও তথ্যের জন্য ব্যবহারকারী, প্রোফাইল এবং অ্যাকাউন্ট, ডিভাইস পলিসি ম্যানেজার API ডকুমেন্টেশন এবং নমুনা ডিভাইস মালিক অ্যাপের Android বিকাশকারীর সংজ্ঞা দেখুন।

বৈধতা

CTS খুচরা ডেমো মোড কভার করে না কারণ এটি একটি ঐচ্ছিক বৈশিষ্ট্য। ডেমো অ্যাপের জন্য ম্যানুয়ালি বা ইউনিট টেস্টের মাধ্যমে পরীক্ষা করা উচিত।

ডেমো সেশন

ডেমো সেশনের সেটআপ

কারখানা থেকে ডেমো মোডের জন্য কনফিগার করা হলে খুচরা ডেমো ডিভাইসগুলি খুচরা ডেমো মোডে বুট হতে পারে। বিকল্পভাবে, খুচরা কর্মচারীরা সেটআপ উইজার্ড থেকে সরাসরি খুচরা মোড সক্ষম করতে পারে।

Retail demo mode

চিত্র 2. খুচরা প্রদর্শন মোড

ডেমো সেশন প্রদর্শন করুন

যখন ডিভাইসটি খুচরা মোডে প্রবেশ করে, তখন এটি একটি নতুন ডেমো ব্যবহারকারীতে স্যুইচ করে এবং বাস্তবায়নে বর্ণিত ওভারলে রিসোর্সে নির্দিষ্ট কাস্টম লঞ্চার স্বয়ংক্রিয়ভাবে শুরু করে। ডিফল্টরূপে, এই কাস্টম লঞ্চারটি পুনরাবৃত্তিতে ডেমো ভিডিও চালায় যতক্ষণ না ব্যবহারকারী একটি ডেমো ব্যবহারকারী সেশন শুরু করতে স্ক্রীন স্পর্শ করে। সেই সময়ে, কাস্টম লঞ্চার সিস্টেম লঞ্চার শুরু করে এবং তারপর প্রস্থান করে। OEMs কাস্টম লঞ্চারকে অতিরিক্তভাবে অন্য পরিষেবা বা প্রস্থান করার সময় ক্রিয়াকলাপ চালু করতে পরিবর্তন করতে পারে।

খুচরা মোডের অখণ্ডতা বজায় রাখার জন্য, কীগার্ড অক্ষম করা হয়েছে এবং দ্রুত সেটিংস থেকে কিছু ক্রিয়াকলাপ যা খুচরা মোডকে বিরূপভাবে প্রভাবিত করতে পারে সেগুলিও অনুমোদিত নয়, নিম্নলিখিতগুলি সহ।

  • বিমান মোড টগল।
  • Wi-Fi অ্যাক্সেস পয়েন্ট (সেটিংস) অপসারণ বা সংশোধন করা হচ্ছে।
  • ক্যারিয়ার পরিবর্তন করা (সেটিংস)।
  • হটস্পট কনফিগার করা হচ্ছে (সেটিংস)।
  • ব্যবহারকারী সুইচিং.

অতিরিক্তভাবে, কিছু গ্লোবাল সেটিংসেও অ্যাক্সেস ব্লক করা হয়েছে যা নিম্নলিখিতগুলি নিষ্ক্রিয় করে খুচরা মোডকে প্রভাবিত করতে পারে:

  • Wi-Fi সেটিংস।
  • সেলুলার নেটওয়ার্ক কনফিগারেশন বিকল্প, বিশেষ করে হটস্পট।
  • ব্লুটুথ কনফিগারেশন।
  • ব্যাকআপ এবং রিসেট, তারিখ এবং সময়, এবং মোবাইল নেটওয়ার্কগুলি (সেগুলি মোটেই দেখায় না)৷

যদি ব্যবহারকারী কিছু সময়ের জন্য নিষ্ক্রিয় থাকে (ডিফল্টরূপে 90 সেকেন্ড), রিটেল মোড ব্যবহারকারীকে সেশন থেকে প্রস্থান করতে বা চালিয়ে যেতে অনুরোধ করার জন্য একটি সিস্টেম ডায়ালগ দেখায়। ব্যবহারকারী যদি প্রস্থান করতে চান বা পাঁচ সেকেন্ডের জন্য কোনো প্রতিক্রিয়া না থাকলে, রিটেল মোড বর্তমান ডেমো ব্যবহারকারীকে সরিয়ে দেয়, একটি নতুন ডেমো ব্যবহারকারীর কাছে স্যুইচ করে এবং মূল ভিডিওটি আবার লুপ করে। পাওয়ার বোতাম ব্যবহার করে স্ক্রিনটি বন্ধ করা থাকলে, এটি কয়েক সেকেন্ড পরে স্বয়ংক্রিয়ভাবে ফিরে আসে।

একটি ডেমো সেশন থেকে প্রস্থান করার পরে, ডিভাইসগুলি নিজেকে নিঃশব্দ করে এবং নিম্নলিখিতগুলি সহ কিছু বিশ্বব্যাপী সেটিংস পুনরায় সেট করে:

  • উজ্জ্বলতা
  • স্বয়ংক্রিয় ঘূর্ণন
  • টর্চলাইট
  • ভাষা
  • অ্যাক্সেসযোগ্যতা

খুচরা ডেমো মোড থেকে প্রস্থান করুন

খুচরা মোড থেকে প্রস্থান করার জন্য, খুচরা কর্মীদের অবশ্যই নিশ্চিত করতে হবে যে ডেমো ডিভাইসটি ডিভাইস পরিচালনার অধীনে নথিভুক্ত করা হয়নি এবং বুট লোডার থেকে ডিভাইসটিকে ফ্যাক্টরি রিসেট করতে হবে।