قدم Android 7.1.1 دعمًا على مستوى النظام لوضع العرض التوضيحي للبيع بالتجزئة لكي يمكن للعملاء فحص الأجهزة أثناء العمل في متاجر البيع بالتجزئة. تم إعداد الأجهزة للعرض التوضيحي للبيع بالتجزئة باستخدام تطبيق مالك الجهاز للتأكد من أن استخدام الجهاز مقتصرة على بعض تطبيقات الوضع التجريبي فقط. يجب ألا يتمكن المستخدمون من إضافة حساب شخصي على جهاز للعرض التوضيحي للبيع بالتجزئة. يراجع Android 8.1 هذا الدعم إلى إنشاء تصنيف المستخدمين من خلال DevicePolicyManager createAndManageUser واجهة برمجة التطبيقات. ويسمح ذلك بتخصيص المصنّع الأصلي للجهاز بشكل أكبر لوضع البيع بالتجزئة القياسي في بنود إدارة المستخدمين وإدارة سياسة الجهاز على الجهاز التجريبي.
على الرغم من أنّ 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. النظام
ويستخدم الخادم و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 ويشغلها بشكل متكرر. عندما يلمس المستخدم الشاشة، يشغّل مشغّل التطبيقات المخصّص لإيقاف مكون النشاط، مما يؤدي إلى أن يؤدي مشغّل النظام التلقائي لبدء التشغيل.
يجب أن يتم وضع علامة على مكوِّنه المخصص باعتباره غير مفعَّل تلقائيًا في مشغّل التطبيقات المخصص
لكي لا يظهر في السيناريوهات غير التجريبية في سيناريو العرض التوضيحي، يشير نظام
يفعّل الخادم "config_demoModeLauncherComponent
" المحدَّد عند بدء
جلسة تجريبية جديدة.
يبحث معالج الإعداد أيضًا عن الفيديو المذكور سابقًا لتقديم القدرة على الدخول في وضع البيع بالتجزئة. يمكن تعديل SUW للبحث عن بيانات علامة خاصة بالمُصنّع الأصلي إلى أنّ وضع البيع بالتجزئة متاح إذا لم يكن الفيديو جزءًا من العرض التوضيحي. في حال توفُّر أقسام A/B من النظام، يجب أن يتم تقسيم الجزء B للنظام سيحتوي على الفيديو التوضيحي في /preloads/demo. يتم نسخ هذا إلى /data/preloads/demo عند التشغيل لأول مرة.
تخصيص التطبيقات المحمَّلة مُسبَقًا للوضع التجريبي للبيع بالتجزئة
يمكن للتطبيقات المُحمَّلة مسبقًا تخصيص تجربتها للوضع التجريبي للبيع بالتجزئة من خلال طلب
UserManager.isDemoUser()
API لمعرفة ما إذا كان قد تم تشغيل التطبيق في بيئة تجريبية.
يتم فرض قيود معيّنة في التطبيق التجريبي للمستخدم، على غرار الجهاز المُدار أو
سياسات الملف الشخصي التي تمنع التطبيقات والمستخدمين من تنفيذ عمليات معيّنة.
أحد هذه القيود هو DISALLOW_MODIFY_ACCOUNTS
. وبالتالي، سيتعامل مدير الحساب
والإعدادات
لا تسمح بإضافة حسابات. تتفاعل بعض تطبيقات Google مع هذا الحظر.
وتعرض رسالة خطأ، ولن يطلب البعض الآخر حسابًا (مثل
YouTube و"صور Google"). ننصح أيضًا بأن تتحقّق تطبيقات المصنّع الأصلي للجهاز مما إذا
تم ضبط DISALLOW_MODIFY_ACCOUNTS
، وبالتالي يتم التعامل مع السيناريو وفقًا لذلك.
تحديثات النظام
عندما يكون "وضع البيع بالتجزئة" مفعّلاً، يتم ضبط سياسة الجهاز على "البث الهوائي" تلقائيًا. (OTA) يتم تحديثها تلقائيًا. سيتم تنزيل أجهزة البيع بالتجزئة وإعادة تشغيلها وتثبيتها. التحديث (مع مراعاة حدود البطارية) بدون تفاعل المستخدم.
تطبيق البيع بالتجزئة التجريبي
يتطلب تنفيذ الوضع التجريبي للبيع بالتجزئة المستند إلى مالك الجهاز وحدة التحكّم بسياسة الجهاز تطبيق مالك الجهاز. يحتوي AOSP على تطبيق RetailDemo مرجعي. تنفيذها في /packages/apps/RetailDemo.
لا تحتاج تطبيقات مالك الجهاز إلى أذونات مميزة وعالية المستوى أو إلى تثبيت مسبق على نسخة من النظام ويمكن تنزيلها أثناء عملية الإعداد أو توفير المتطلبات اللازمة. ويتم تنفيذها في الغالب مثل التطبيقات التقليدية، الاختلافات:
يجب على جميع تطبيقات مالك الجهاز توسيع جهاز تحكم المشرف للجهاز والذي يعمل كرمز مميز للتفويض لجميع الأشخاص مدير سياسة الجهاز واجهات برمجة التطبيقات. يجب أن يحتوي المكوِّن على
android.permission.BIND_DEVICE_ADMIN
عليك تضمين السياسات الخاصة المطلوبة كبيانات وصفية، وفلترةandroid.app.action.PROFILE_PROVISIONING_COMPLETE
وandroid.app.action.DEVICE_ADMIN_ENABLED
الأهداف.DevicePolicyManager#ابتك_USER_DEMO التي يتم تعيينها لإنشاء مستخدمين من النوع التجريبي الخاص، هي واجهة برمجة تطبيقات مخفية. هذه العلامة لها قيمة ثابتة 0x4.
يجب تحديد ملكية الجهاز من خلال دور إدارة الجهاز فقط. صاحب الحساب أو واجهة إدارة الحسابات التطبيق.
واجهات برمجة التطبيقات في DevicePolicyManager فئة تمكين مالك الجهاز (DO) ومالك الملف الشخصي (PO) لفرض أجهزة مختلفة . بعض سياسات DevicePolicyManager الوظائف التي تنطبق على وضع العرض التوضيحي للبيع بالتجزئة على النحو التالي.
إنشاء المستخدمين وإدارتهم
أعد تشغيل الجهاز.
يمكنك ضبط الحِزم المسموح بها في ميزة LockTask.
ثبِّت الحِزَم من خلال PackageInstaller.
حظر إلغاء تثبيت الحزم
تفعيل تحديثات النظام التلقائية سيتم تنزيل تحديثات التحديث عبر الهواء وتطبيقها تلقائيًا على الأجهزة.
إيقاف قفل المفاتيح
منع ضبط كلمات المرور أو بصمات الأصابع
اضبط مجموعة مُدرَجة في القائمة المسموح بها ضِمن 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 المستخدمين والملفات الشخصية والحسابات، ومستندات واجهة برمجة تطبيقات "مدير سياسة الجهاز" ونموذج تطبيق مالك الجهاز لمزيد من المعلومات.
التحقُّق
لا توفّر CTS وضع العرض التوضيحي لبائعي التجزئة لأنها ميزة اختيارية. الاختبار يدويًا أو باستخدام اختبارات الوحدة للتطبيق التجريبي.
جلسة تجريبية
إعداد جلسة العرض التوضيحي
قد يتم تشغيل الأجهزة التجريبية للبيع بالتجزئة في وضع العرض التوضيحي للبيع بالتجزئة إذا تم ضبطها للاستخدام في الوضع التجريبي. من المصنع. بدلاً من ذلك، يمكن لموظفي البيع بالتجزئة تفعيل وضع البيع بالتجزئة مباشرةً من معالج الإعداد.
الشكل 2. وضع العرض التوضيحي لبائعي التجزئة
عرض جلسة تجريبية
عندما يدخل الجهاز في وضع البيع بالتجزئة، يتم التبديل إلى مستخدم تجريبي جديد يبدأ تلقائيًا المشغّل المخصص المحدد في مورد التراكب كما هو موضَّح في مقالة التنفيذ. بشكل افتراضي، يشغِّل تطبيق المشغّل المخصّص هذا الفيديو التوضيحي بشكل متكرّر إلى أن يلمس المستخدم لبدء جلسة مستخدم تجريبي. حينها يبدأ مشغّل التطبيقات المخصص مشغّل النظام ثم الخروج. يمكن للمصنّعين الأصليين للأجهزة تغيير مشغّل التطبيقات المخصص بالإضافة إلى ذلك، إطلاق خدمة أو نشاط آخر عند الخروج.
للحفاظ على سلامة وضع البيع بالتجزئة، يتم إيقاف قفل المفاتيح فإن بعض الإجراءات من "الإعدادات السريعة" التي قد تؤثر سلبًا على وضع البيع بالتجزئة غير مسموح أيضًا، بما في ذلك ما يلي.
- تفعيل "وضع الطيران" أو إيقافه
- إزالة نقاط وصول Wi-Fi أو تعديلها (الإعدادات).
- تغيير مشغِّل شبكة الجوّال (الإعدادات)
- جارٍ ضبط نقطة الاتصال (الإعدادات).
- تبديل المستخدم
بالإضافة إلى ذلك، يتم حظر الوصول أيضًا إلى بعض الإعدادات العامة التي قد تؤثر في وضع البيع بالتجزئة من خلال تعطيل ما يلي:
- إعدادات Wi-Fi.
- خيارات ضبط شبكة الجوّال، وخاصةً نقاط الاتصال.
- إعداد البلوتوث.
- الاحتفاظ بنسخة احتياطية إعادة الضبط والتاريخ الوقت وشبكات الجوّال (لا تظهر على الإطلاق).
إذا كان المستخدم غير نشِط لفترة من الوقت (90 ثانية بشكل تلقائي)، فإن وضع البيع بالتجزئة عرض مربّع حوار نظام يُطلب فيه من المستخدم الخروج من الجلسة أو المتابعة إذا اختار المستخدم الخروج أو لم يكن هناك رد لمدة خمس ثوانٍ، يمكنك بيع المستخدم الحالي، ثم ينتقل إلى مستخدم تجريبي جديد، الفيديو الأصلي مرة أخرى. إذا كانت الشاشة مطفأة باستخدام زر التشغيل، سيعود تلقائيًا بعد بضع ثوانٍ.
بعد الخروج من جلسة الإصدار التجريبي، تكتم صوت الأجهزة نفسها وتعيد ضبط بعض الإعدادات العامة. الإعدادات، بما في ذلك ما يلي:
- السطوع
- التدوير التلقائي
- ضوء الفلاش
- اللغة
- تسهيل الاستخدام
الخروج من وضع العرض التوضيحي لبائعي التجزئة
للخروج من وضع البيع بالتجزئة، على موظفي البيع بالتجزئة التأكد من أنّ الجهاز التجريبي تحت إدارة الجهاز وأعد ضبط الجهاز على الإعدادات الأصلية من برنامج الإقلاع.