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

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

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

التنفيذ في الإصدار 8.1 من نظام التشغيل Android والإصدارات الأحدث

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

التغييرات في النظام الأساسي

ضبط DEVICE_DEMO_MODE

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

تفعيل RetailDemoModeService

في الأجهزة التي تتضمّن وضعًا تجريبيًا لبائعي التجزئة، يضبط معالج الإعدادات إعدادًا عامًا Global.DEVICE_DEMO_MODE على true للإشارة إلى أنّ الجهاز قد دخل في وضع البيع بالتجزئة. عند ظهور هذا الإعداد، تنشئ خدمة RetailDemoModeService مستخدمًا تجريبيًا وتنتقل إليه عند بدء المستخدم 0، وتفعّل المشغّل المخصّص المحدّد في مورد تراكب، وتوقِف "معالج الإعداد". يستخدم كلّ من 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() لمعرفة ما إذا كان التطبيق يتم تشغيله في بيئة عرض توضيحي.

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

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

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

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

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

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

تتيح واجهات برمجة التطبيقات في فئة DevicePolicyManager لمالك الجهاز ومالك الملف الشخصي فرض سياسات مختلفة على الجهاز. في ما يلي بعض وظائف 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

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

يتضمّن تطبيق 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>
    
  • في 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 للمستخدمين والملفات الشخصية والحسابات، ومستندات واجهة برمجة التطبيقات الخاصة بأداة Device Policy Manager، وتطبيق نموذج لمالك الجهاز.

التحقُّق

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

جلسة العرض التوضيحي

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

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

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

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

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

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

للحفاظ على سلامة وضع البيع بالتجزئة، يتم إيقاف شاشة القفل، كما يتم حظر بعض الإجراءات من &quot;الإعدادات السريعة&quot; التي قد تؤثر سلبًا في وضع البيع بالتجزئة، بما في ذلك ما يلي:

  • مفتاح تفعيل/إيقاف وضع الطيران
  • إزالة نقاط وصول Wi-Fi أو تعديلها (الإعدادات)
  • تغيير مشغّل شبكة الجوّال (الإعدادات)
  • ضبط نقطة الاتصال (الإعدادات)
  • التبديل بين المستخدمين

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

  • إعدادات Wi-Fi
  • خيارات إعداد شبكة الجوّال، خاصةً نقاط الاتصال
  • إعدادات البلوتوث
  • الاحتفاظ بنسخة احتياطية وإعادة الضبط، والتاريخ والوقت، وشبكات الجوّال (لا تظهر هذه الخيارات على الإطلاق).

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

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

  • السطوع
  • التدوير التلقائي
  • ضوء الفلاش
  • اللغة
  • تسهيل الاستخدام

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

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