وضع تجريبي للبيع بالتجزئة

قدم Android 7.1.1 دعمًا على مستوى النظام للوضع التجريبي للبيع بالتجزئة حتى يتمكن العملاء من فحص الأجهزة أثناء العمل في متاجر البيع بالتجزئة. يتم إعداد الأجهزة للعرض التجريبي للبيع بالتجزئة باستخدام تطبيق مالك الجهاز للتأكد من أن استخدام الجهاز يقتصر على بعض تطبيقات الوضع التجريبي فقط. يجب ألا يتمكن المستخدمون النهائيون من إضافة حساب شخصي على جهاز تجريبي للبيع بالتجزئة. يقوم Android 8.1 بمراجعة هذا الدعم لإنشاء مستخدمين تجريبيين من خلال واجهة برمجة تطبيقات DevicePolicyManager createAndManageUser . يتيح ذلك تخصيصًا أكبر بكثير لـ OEM لوضع البيع بالتجزئة القياسي فيما يتعلق بإدارة المستخدم وإدارة سياسة الجهاز على الجهاز التجريبي.

بينما يمكن استخدام واجهات برمجة تطبيقات DevicePolicyManager على الإصدارات السابقة لنظام Android 8.1، لا يمكن إنشاء مستخدمي النوع التجريبي ( DevicePolicyManager.MAKE_USER_DEMO ) باستخدام createAndManageUser API في الإصدارات 8.0 والإصدارات السابقة.

التنفيذ في أندرويد 8.1 والإصدارات الأحدث

يسلط هذا القسم الضوء على تحسينات النظام الأساسي ويصف التطبيق التجريبي للبيع بالتجزئة في Android 8.1 والإصدارات الأحدث.

تغييرات المنصة

اضبط DEVICE_DEMO_MODE

يجب على الأجهزة التي تنفذ وضعًا تجريبيًا للبيع بالتجزئة يعتمد على مالك الجهاز Settings.Global.DEVICE_DEMO_MODE على 1 قبل التوفير للإشارة إلى أنه يتم توفير الجهاز للوضع التجريبي للبيع بالتجزئة. يستخدم SystemServer هذه العلامة لإدارة جوانب وضع البيع بالتجزئة، مثل ملف تعريف الطاقة وSystemUI.

تمكين خدمة RetailDemoModeService

في الأجهزة التي تطبق وضع البيع بالتجزئة التجريبي، يقوم معالج الإعداد بتعيين الإعداد العام Global.DEVICE_DEMO_MODE إلى true للإشارة إلى أن الجهاز قد دخل في وضع البيع بالتجزئة. عند رؤية هذا الإعداد، يقوم RetailDemoModeService بإنشاء مستخدم تجريبي والتبديل إليه عند بدء تشغيل المستخدم 0، وتمكين المشغل المخصص المحدد في مورد التراكب، وتعطيل SUW. يستخدم System Server وSystemUI أيضًا هذه العلامة لإدارة جوانب وضع البيع بالتجزئة.

قم بتعيين مشغل مخصص أو مشغل فيديو

يمكن لمصنعي الأجهزة تحديد مشغل مخصص عن طريق تجاوز مورد إطار العمل config_demoModeLauncherComponent المحدد في ملف config.xml كما يلي.

<!-- 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 Server بتمكين config_demoModeLauncherComponent المحدد عند بدء جلسة تجريبية جديدة.

يبحث معالج الإعداد أيضًا عن الفيديو المذكور مسبقًا لتوفير إمكانية الدخول إلى وضع البيع بالتجزئة. يمكن تعديل SUW للبحث عن بعض العلامات الأخرى الخاصة بـ OEM والتي تشير إلى دعم وضع البيع بالتجزئة إذا لم يكن الفيديو جزءًا من العرض التوضيحي. إذا كان هناك أقسام A/B للنظام، فيجب أن يحتوي قسم النظام B على الفيديو التوضيحي على /preloads/demo. يتم نسخ هذا إلى /data/preloads/demo عند التمهيد الأول.

تخصيص التطبيقات المحملة مسبقًا للوضع التجريبي للبيع بالتجزئة

يمكن للتطبيقات المحملة مسبقًا تخصيص تجربتها للوضع التجريبي للبيع بالتجزئة عن طريق الاتصال بـ UserManager.isDemoUser() API لمعرفة ما إذا كان التطبيق قد تم تشغيله في بيئة تجريبية.

يتم تعيين قيود معينة في المستخدم التجريبي، على غرار سياسات الجهاز المُدار أو الملف الشخصي التي تمنع التطبيقات والمستخدمين من تنفيذ عمليات معينة. أحد هذه القيود هو DISALLOW_MODIFY_ACCOUNTS . مع هذا التقييد، لا يسمح AccountManager والإعدادات بإضافة حسابات. تتفاعل بعض تطبيقات Google مع هذا التقييد وتظهر رسالة خطأ، بينما لا يطالب البعض الآخر بإنشاء حساب (مثل YouTube والصور). نوصي بأن تتحقق تطبيقات OEM أيضًا من تعيين DISALLOW_MODIFY_ACCOUNTS وتتعامل مع السيناريو وفقًا لذلك.

تحديثات النظام

افتراضيًا، عند تمكين وضع البيع بالتجزئة، يتم تعيين سياسة الجهاز على التحديث عبر الهواء (OTA) تلقائيًا. ستقوم أجهزة البيع بالتجزئة بتنزيل التحديث وإعادة تشغيله وتثبيته (مع احترام حدود البطارية) دون تدخل المستخدم.

التطبيق التجريبي للبيع بالتجزئة

يتطلب تنفيذ الوضع التجريبي للبيع بالتجزئة المستند إلى مالك الجهاز تعيين تطبيق Device Policy Controller كمالك للجهاز. يحتوي AOSP على تطبيق مرجعي لتطبيق RetailDemo في /packages/apps/RetailDemo .

لا تحتاج تطبيقات مالك الجهاز إلى امتيازات مرتفعة أو تثبيت مسبق على صورة النظام ويمكن تنزيلها أثناء عملية الإعداد أو التوفير. يتم تنفيذها في الغالب مثل التطبيقات التقليدية، مع الاختلافات التالية:

تعمل واجهات برمجة التطبيقات في فئة DevicePolicyManager على تمكين مالك الجهاز (DO) ومالك الملف الشخصي (PO) من فرض سياسات الجهاز المختلفة. تم إدراج بعض وظائف DevicePolicyManager المطبقة على الوضع التجريبي للبيع بالتجزئة على النحو التالي.

  • إنشاء وإدارة المستخدمين.

  • أعد تشغيل الجهاز.

  • قم بتعيين حزم LockTask المسموح بها.

  • تثبيت الحزم من خلال PackageInstaller .

  • منع الحزم من إلغاء التثبيت.

  • تمكين تحديثات النظام التلقائية. ستقوم الأجهزة بتنزيل تحديثات OTA وتطبيقها تلقائيًا.

  • تعطيل حارس المفاتيح.

  • منع تعيين كلمات المرور أو بصمات الأصابع.

  • قم بتعيين مجموعة مدرجة في القائمة المسموح بها لإعدادات الإعدادات.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

تحديث الفيديو التجريبي باستخدام الويب

يتمتع تطبيق RetailDemo الموجود في /packages/apps/RetailDemo بالقدرة على تحديث الفيديو التجريبي في حالة وجود اتصال بالشبكة. يمكن تكوين عنوان URL لتنزيل الفيديو منه عن طريق تجاوز قيمة السلسلة التالية في تطبيق RetailDemo.

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

إذا كانت هناك حاجة لاستخدام مقاطع فيديو مختلفة في مناطق مختلفة، فيمكن تكوين عناوين URL مختلفة للتنزيل باستخدام موارد سلسلة خاصة بالإعدادات المحلية في res/values-*/strings.xml . على سبيل المثال، إذا كانت هناك حاجة لاستخدام مقاطع فيديو مختلفة في الولايات المتحدة وبريطانيا العظمى، فيمكن وضع عناوين 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>
    
  • في الدقة/القيم-en-rGB/strings.xml:

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

يتم تنزيل هذا الفيديو مرة واحدة على الأكثر عند كل عملية إعادة تشغيل للجهاز. عند تشغيل الفيديو على الجهاز، يتحقق تطبيق RetailDemo في الخلفية مما إذا كان عنوان URL للتنزيل متوفرًا وكان الفيديو الموجود على عنوان URL أحدث من الفيديو الذي يتم تشغيله.

إذا كان الأمر كذلك، فسيتم تنزيل تطبيق RetailDemo ويبدأ تشغيل الفيديو. بمجرد تنزيل الفيديو، يتم استخدامه لتشغيله في جميع الجلسات التجريبية من الآن فصاعدًا. لا يتم إجراء أي من عمليات التحقق مرة أخرى إلا بعد إعادة التشغيل التالية.

إرشادات الفيديو التجريبي

يجب أن تكون مقاطع الفيديو التوضيحية بتنسيق عمودي، أو إذا كانت على جهاز لوحي، في الاتجاه الطبيعي للجهاز، ويمكن أن يزيد طولها عن خمس ثوانٍ. يجب ألا يؤدي المحتوى إلى النسخ، لأنه سيتم تشغيله باستمرار عند عرضه.

راجع تعريفات مطوري Android للمستخدمين والملفات الشخصية والحسابات، ووثائق واجهة برمجة التطبيقات لإدارة سياسة الجهاز ونموذج تطبيق مالك الجهاز لمزيد من المعلومات.

تصديق

لا تغطي CTS الوضع التجريبي للبيع بالتجزئة لأنها ميزة اختيارية. يجب إجراء الاختبار يدويًا أو باستخدام اختبارات الوحدة للتطبيق التجريبي.

جلسة تجريبية

إعداد الجلسة التجريبية

قد يتم تشغيل الأجهزة التجريبية للبيع بالتجزئة في الوضع التجريبي للبيع بالتجزئة إذا تم تكوينها للوضع التجريبي من المصنع. وبدلاً من ذلك، يمكن لموظفي البيع بالتجزئة تمكين وضع البيع بالتجزئة مباشرةً من معالج الإعداد.

Retail demo mode

الشكل 2. وضع العرض التوضيحي للبيع بالتجزئة

عرض الجلسة التجريبية

عندما يدخل الجهاز في وضع البيع بالتجزئة، فإنه يتحول إلى مستخدم تجريبي جديد ويبدأ تلقائيًا المشغل المخصص المحدد في مورد التراكب كما هو موضح في التنفيذ . افتراضيًا، يقوم هذا المشغل المخصص بتشغيل الفيديو التجريبي بشكل متكرر حتى يلمس المستخدم الشاشة لبدء جلسة مستخدم تجريبية. في ذلك الوقت، يقوم المشغل المخصص بتشغيل مشغل النظام ثم الخروج. يمكن لمصنعي المعدات الأصلية تغيير المشغل المخصص لتشغيل خدمة أو نشاط آخر عند الخروج.

من أجل الحفاظ على سلامة وضع البيع بالتجزئة، يتم تعطيل لوحة المفاتيح ولا يُسمح أيضًا بإجراءات معينة من الإعدادات السريعة التي قد تؤثر سلبًا على وضع البيع بالتجزئة، بما في ذلك ما يلي.

  • تبديل وضع الطائرة.
  • إزالة أو تعديل نقاط وصول Wi-Fi (الإعدادات).
  • تغيير الناقل (الإعدادات).
  • تكوين نقطة الاتصال (الإعدادات).
  • تبديل المستخدم.

بالإضافة إلى ذلك، يتم حظر الوصول أيضًا إلى بعض الإعدادات العامة التي يمكن أن تؤثر على وضع البيع بالتجزئة عن طريق تعطيل ما يلي:

  • اعدادات الواي فاي.
  • خيارات تكوين الشبكة الخلوية، وخاصة نقاط الاتصال.
  • تكوين بلوتوث.
  • النسخ الاحتياطي وإعادة الضبط، والتاريخ والوقت، وشبكات الهاتف المحمول (لا تظهر على الإطلاق).

إذا كان المستخدم خاملاً لبعض الوقت (90 ثانية بشكل افتراضي)، فسيعرض وضع البيع بالتجزئة مربع حوار نظام لمطالبة المستخدم إما بالخروج من الجلسة أو المتابعة. إذا اختار المستخدم الخروج أو إذا لم تكن هناك استجابة لمدة خمس ثوانٍ، فسيزيل وضع البيع بالتجزئة المستخدم التجريبي الحالي، ويتحول إلى مستخدم تجريبي جديد، ويتكرر خلال الفيديو الأصلي مرة أخرى. إذا تم إيقاف تشغيل الشاشة باستخدام زر الطاقة، فإنها تعود للعمل تلقائيًا بعد بضع ثوانٍ.

بعد الخروج من الجلسة التجريبية، تقوم الأجهزة بكتم صوت نفسها وإعادة ضبط بعض الإعدادات العامة، بما في ذلك ما يلي:

  • سطوع
  • التدوير التلقائي
  • مصباح يدوي
  • لغة
  • إمكانية الوصول

الخروج من الوضع التجريبي للبيع بالتجزئة

للخروج من وضع البيع بالتجزئة، يجب على موظفي البيع بالتجزئة التأكد من عدم تسجيل الجهاز التجريبي ضمن إدارة الجهاز وإعادة ضبط الجهاز على إعدادات المصنع من أداة تحميل التشغيل.