توفّر هذه الصفحة نظرة عامة على واجهات برمجة التطبيقات والميزات والسلوك الخاصة بالمؤسسات. التغييرات التي تتوفّر في الإصدار 9 من Android.
واجهة مستخدم ملف العمل
يتضمّن Android 9 (المستوى 28 من واجهة برمجة التطبيقات) تغييرات في واجهة المستخدم تلقائيًا مشغّل التطبيقات لمساعدة المستخدمين في الفصل بين التطبيقات الشخصية وتطبيقات العمل. الشركات المصنِّعة للأجهزة يدعم ذلك أن يقدم تجربة التطبيقات في علامات تبويب منفصلة لكل من "العمل" و"الملف الشخصي". لقد سهّلنا أيضًا على مستخدمي الأجهزة تفعيل ملف العمل وإيقافه عن طريق بما في ذلك مفتاح التبديل في علامة تبويب العمل في المشغّل.
![](https://developer.android.google.cn/static/images/about/versions/pie/p-work-profile.jpg?authuser=2&hl=ar)
عند توفير الملفات الشخصية للعمل والأجهزة المُدارة، يتضمن Android 9 والرسوم التوضيحية المتحركة لمساعدة مستخدمي الأجهزة على فهم هذه الميزات.
التبديل بين التطبيقات بين الملفات الشخصية
يتضمّن Android 9 واجهات برمجة تطبيقات لتشغيل مثيل آخر من أحد التطبيقات في
لمساعدة المستخدمين في التبديل بين الحسابات. على سبيل المثال، يمكن لتطبيق البريد الإلكتروني
توفير واجهة مستخدم تتيح للمستخدم التبديل بين الملف الشخصي وإعدادات ملف العمل
ملفك الشخصي للدخول إلى حسابين من حسابات البريد الإلكتروني. يمكن لجميع التطبيقات استدعاء واجهات برمجة التطبيقات هذه لتشغيل
النشاط الرئيسي للتطبيق نفسه إذا كان مثبتًا من قبل في الملف الشخصي الآخر. إلى
إضافة ميزة التبديل بين الملف الشخصي وملف العمل إلى تطبيقك، اتّبِع خطوات الاتصال أدناه
طريقة
صف واحد (CrossProfileApps
):
- يمكنك الاتصال بالرقم
getTargetUserProfiles()
للاطّلاع على قائمة الملفات الشخصية التي يمكنك تشغيل نسخة أخرى من التطبيق فيها. تتحقق هذه الطريقة من أن تثبيت التطبيق في الملفات الشخصية. - الاتصال بالرقم
getProfileSwitchingIconDrawable()
للحصول على رمز يمكنك استخدامه لتمثيل ملف شخصي آخر. - يمكنك الاتصال بالرقم
getProfileSwitchingLabel()
للحصول على نص مترجم يطلب من المستخدم تبديل الملفات الشخصية. - يمكنك الاتصال بالرقم
startMainActivity()
لتشغيل مثيل تطبيقك في ملف شخصي آخر.
تأكّد من أنّ النشاط الرئيسي الذي تريد إطلاقه مذكور في صفحة تطبيقك.
يتضمّن ملف البيان، مع إجراء intent ACTION_MAIN
، ويشمل
فئة هدف CATEGORY_LAUNCHER
.
تفعيل الملفات الشخصية للعمل أو إيقافها آليًا
مشغّل التطبيقات التلقائي (أو التطبيقات التي لديها الإذن MANAGE_USERS
أو
MODIFY_QUIET_MODE
) تفعيل ملف العمل أو إيقافه من خلال الاتصال
UserManager.requestQuietModeEnabled()
يمكنك
فحص القيمة المعروضة لمعرفة ما إذا كان المستخدم بحاجة إلى تأكيد
بيانات الاعتماد قبل تغيير الحالة. لأنّ التغيير قد لا يحدث
فورًا، استمع إلى
ACTION_MANAGED_PROFILE_AVAILABLE
أو
ACTION_MANAGED_PROFILE_UNAVAILABLE
البث لمعرفة وقت تحديث واجهة المستخدم.
يمكن لتطبيقك التحقّق من حالة ملف العمل من خلال الاتصال
UserManager.isQuietModeEnabled()
قفل أي تطبيق على الجهاز
بدءًا من نظام التشغيل Android 9، سيتمكّن مالكو الأجهزة ومالكي الملفات الشخصية (للمستخدمين الثانويين) يمكنك قفل أي تطبيق على شاشة الجهاز من خلال تعيين التطبيق في وضع قفل المهمة. في السابق، كان على مطوّري التطبيقات إضافة دعم لمهمة القفل في تطبيقاتهم. تمديد مهمة القفل أيضًا على Android 9 واجهات برمجة التطبيقات (API) المخصصة لمالكي الملفات الشخصية للمستخدمين الثانويين غير التابعين يُرجى اتّباع الخطوات أدناه: لقفل التطبيق على الشاشة:
- الاتصال بالرقم
DevicePolicyManager.setLockTaskPackages()
إضافة التطبيقات إلى القائمة المسموح بها لوضع قفل المهمة - الاتصال بالرقم
ActivityOptions.setLockTaskEnabled()
لتفعيل الميزة تطبيق مُدرَج في القائمة المسموح بها في وضع قفل المهمة.
لإيقاف تطبيق في وضع قفل المهمة، عليك إزالة التطبيق من وضع قفل المهمة.
استخدام القائمة المسموح بها
DevicePolicyManager.setLockTaskPackages()
تفعيل ميزات واجهة مستخدم النظام
عند تفعيل وضع قفل المهمة، يمكن لمالكي الأجهزة ومالكي الملفات الشخصية تفعيله.
ميزات معينة لواجهة مستخدم النظام على الجهاز من خلال استدعاء
DevicePolicyManager.setLockTaskFeatures()
واجتياز
لعلامات الميزات التالية:
LOCK_TASK_FEATURE_NONE
LOCK_TASK_FEATURE_SYSTEM_INFO
LOCK_TASK_FEATURE_HOME
LOCK_TASK_FEATURE_NOTIFICATIONS
لا يمكن استخدامها إلا معLOCK_TASK_FEATURE_HOME
.LOCK_TASK_FEATURE_KEYGUARD
LOCK_TASK_FEATURE_OVERVIEW
لا يمكن استخدامها إلا معLOCK_TASK_FEATURE_HOME
.LOCK_TASK_FEATURE_GLOBAL_ACTIONS
يمكنك الاتصال بـ DevicePolicyManager.getLockTaskFeatures()
للاطّلاع على قائمة الميزات المتاحة على الجهاز عندما يكون وضع قفل المهمة
مفعّلة. عندما يخرج جهاز من وضع قفل مهمة، يعود إلى الحالة التي يفرضها
سياسات الأجهزة الأخرى.
إيقاف مربعات حوار الأخطاء
في بعض البيئات، مثل عروض البيع بالتجزئة أو المعلومات العلنية
قد لا ترغب في عرض مربعات حوار الأخطاء للمستخدمين. سياسة الجهاز
يمكن لوحدة التحكم (DPC) إيقاف مربعات حوار أخطاء النظام في حالة تعطل أو عدم استجابة
التطبيقات عن طريق إضافة
مستخدم DISALLOW_SYSTEM_ERROR_DIALOGS
القيد. يؤثر هذا التقييد في جميع مربعات الحوار عندما يطبّقه مالك الجهاز
ولكن لا يتم إلغاء سوى مربعات حوار الأخطاء التي تظهر في المستخدم الأساسي أو الثانوي
عندما يطبّقها مالكو الملفات التجارية على هذه القيود هذا القيد لا
تؤثر على الملفات الشخصية للعمل.
في نظام Android 9، التطبيقات التي تعمل بوضع ملء الشاشة المجسم الوضع لا تعرض فقاعة التذكير عندما تكون في وضع قفل المهمة. فقاعة التذكير هي لوحة تظهر للمستخدمين (عند التشغيل لأول مرة) يشرح كيفية الخروج من الوضع المجسم.
دعم العديد من المستخدمين على أجهزة مخصصة
يقدِّم Android 9 مفهوم المستخدم المؤقت للحصول على الأجهزة (التي كانت تُعرف سابقًا باسم COSU الأجهزة). المستخدمون المؤقتون هم المستخدمون قصيرون المدى المخصصون للحالات التي يتشارك فيها عدة مستخدمين في جهاز مخصص. يتضمّن ذلك جلسات المستخدمين العلنية على أجهزة، مثل المكتبة. أو أكشاك تسجيل الحضور في مجال الضيافة، بالإضافة إلى الجلسات المستمرة بين مجموعة من المستخدمين على الأجهزة، مثل عمال النوبات.
يجب إنشاء حسابات مستخدمين مؤقتة في الخلفية. يتم إنشاؤها على شكل المستخدمين الثانويين على أحد الأجهزة وتتم إزالتهم (بالإضافة إلى التطبيقات المرتبطة عند إيقافها أو تبديلها أو إعادة تشغيل الجهاز. لإنشاء مستخدم مؤقت، يمكن لمالكي الجهاز:
- ضبط العلامة
MAKE_USER_EPHEMERAL
أثناء الاتصالDevicePolicyManager.createAndManageUser()
- الاتصال بالرقم
DevicePolicyManager.startUserInBackground()
لبدء المستخدم المؤقت في الخلفية
ملاحظة: التطبيقات التي تستهدف الإصدار 9 من نظام التشغيل Android يجب أن تكتشف
UserManager.UserOperationException
عند الاتصال
createAndManageUser()
عليك استدعاء دالة الاستثناء
getUserOperationResult()
لمعرفة سبب
لم يتم إنشاء المستخدم.
تلقّي إشعارات بشأن الأحداث
تتلقّى DeviceAdminReceiver
إشعارات بشأن
الأحداث التالية:
onUserStarted()
: يتم الاتصال عند بدء المستخدم.onUserSwitched()
: يتم الاتصال عند تبديل المستخدم إتمام عملية الشراء.onUserStopped()
: تم الاتصال به معonUserRemoved()
عندما يتوقف المستخدم أو يسجّل الدخول
عرض رسائل الأحداث للمستخدمين
يمكن لمالكي الأجهزة ضبط الرسائل التي يتم عرضها للمستخدمين عند إجراء بدء جلساتهم وإنهائها:
- استخدام
DevicePolicyManager.setStartUserSessionMessage()
لضبط الرسالة التي يتم عرضها للمستخدم عند بدء جلسة ذلك المستخدِم. إلى استرداد الرسالة، الاتصالDevicePolicyManager.getStartUserSessionMessage()
- استخدام
DevicePolicyManager.setEndUserSessionMessage()
لضبط الرسالة التي يتم عرضها للمستخدم عند انتهاء جلسة المستخدِم. إلى استرداد الرسالة، الاتصالDevicePolicyManager.getEndUserSessionMessage()
تسجيل الخروج وإيقاف المستخدمين
يمكن لمالكي الجهاز استخدام
DevicePolicyManager.setLogoutEnabled()
لتحديد ما إذا كان
تم تفعيل تسجيل خروج المستخدمين الثانويين. للتأكد من تمكين تسجيل الخروج، اتصل
DevicePolicyManager.isLogoutEnabled()
يمكن لمالكي الملفات الشخصية للمستخدمين الثانويين الاتصال بهم
DevicePolicyManager.logoutUser()
لإيقاف المستخدم الثانوي
عليك التبديل مرة أخرى إلى المستخدم الأساسي.
يمكن لمالكي الجهاز استخدام DevicePolicyManager.stopUser()
لإيقاف
المستخدم الثانوي المحدد.
التخزين المؤقت للحِزم
لتبسيط إدارة حسابات المستخدمين على الأجهزة المشتركة التي تضم مجموعة ثابتة من المستخدمين، مثل أجهزة عمال نوبات العمل، فيمكن تخزين الحزم في ذاكرة التخزين المؤقت مطلوبة للجلسات المتعددة المستخدمين:
اتصل
DevicePolicyManager.setKeepUninstalledPackages()
لتحديد قائمة الحزم للاحتفاظ بها كحزم APK. لاسترداد قائمة بهذه حزم، اتصالDevicePolicyManager.getKeepUninstalledPackages()
الاتصال بالرقم
DevicePolicyManager.installExistingPackage()
تثبيت حزمة تم الاحتفاظ بها بعد الإزالة عبرsetKeepUninstalledPackages()
طرق وثوابت إضافية
يتضمّن نظام Android 9 أيضًا الطرق والثوابت التالية لتوفير مزيد من الدعم جلسات المستخدمين على الأجهزة المشترَكة:
- يحصل
DevicePolicyManager.getSecondaryUsers()
على قائمة جميع المستخدمين الثانويين على الجهاز. DISALLOW_USER_SWITCH
هو تقييد للمستخدمين يمكنك التفعيل عن طريق الاتصالDevicePolicyManager.addUserRestriction()
لحظر تبديل المستخدمين.LEAVE_ALL_SYSTEM_APPS_ENABLED
هي علامة. متاح لـDevicePolicyManager.createAndManageUser()
عند الضبط، لا يتم إيقاف تطبيقات النظام أثناء إدارة حسابات المستخدمين.- تم طرح
UserManager.UserOperationException
من خلالDevicePolicyManager.createAndManageUser()
عندما يتعذر إنشاء مستخدم، أي يحتوي الاستثناء على سبب الفشل.
محو بيانات الحزمة وإزالة الحسابات
يمكن لمالكي الجهاز ومالكي الملفات الشخصية الاتصال
clearApplicationUserData()
لمحو بيانات المستخدمين
لحزمة معينة. لإزالة حساب من
AccountManager
، يمكن لمالكي الأجهزة والملفات الشخصية الاتصال بها
removeAccount()
قيود المستخدم وزيادة التحكم في الإعدادات
يفرض Android 9 مجموعة من قيود المستخدم على وحدات التحكّم بسياسة الجهاز (DPC)، بالإضافة إلى القدرة على ضبط أسماء نقاط الوصول (APN) والوقت والمنطقة الزمنية وإعدادات النظام على أحد الأجهزة.
ضبط أسماء نقاط الوصول (APN)
يمكن لمالكي الأجهزة استخدام الطرق التالية
DevicePolicyManager
لضبط أسماء نقاط الوصول على
الجهاز:
addOverrideApn()
updateOverrideApn()
removeOverrideApn()
getOverrideApns()
setOverrideApnEnabled()
isOverrideApnEnabled()
ضبط الوقت والمنطقة الزمنية
يمكن لمالكي الأجهزة استخدام الطرق التالية
DevicePolicyManager
لضبط الوقت والمنطقة الزمنية
على الجهاز:
فرض قيود على المستخدمين بشأن الإعدادات المهمة
يفرض نظام Android 9 قيودًا على المستخدمين لإيقاف ميزات النظام وإعداداته. إلى
إضافة قيد، ثم الاتصال
DevicePolicyManager.addUserRestriction()
مع أحد
ثوابت UserManager
التالية:
DISALLOW_AIRPLANE_MODE
DISALLOW_AMBIENT_DISPLAY
DISALLOW_CONFIG_BRIGHTNESS
DISALLOW_CONFIG_DATE_TIME
DISALLOW_CONFIG_LOCATION
DISALLOW_CONFIG_SCREEN_TIMEOUT
DISALLOW_PRINTING
إذا كان DISALLOW_CONFIG_BRIGHTNESS
تم فرض DISALLOW_CONFIG_SCREEN_TIMEOUT
على أحد الأجهزة، ما زال بإمكان مالكي الجهاز ضبط شاشة
السطوع، درجة سطوع الشاشة
الوضع، وإعدادات المهلة قبل غلق الشاشة
على الجهاز باستخدام واجهة برمجة التطبيقات
DevicePolicyManager.setSystemSetting()
.
البيانات الخاضعة للقياس
يمكن لمالكي الجهاز ومالكي الملفات الشخصية منع التطبيقات من استخدام
وشبكات البيانات الخاضعة للقياس تعتبر الشبكة محدودة عندما يكون المستخدم
للاستخدام الكثيف للبيانات بسبب التكلفة أو حدود البيانات أو البطارية
المشكلات في الأداء. لمنع التطبيقات من استخدام الشبكات التي تفرض تكلفة استخدام، يُرجى الاتصال
DevicePolicyManager.setMeteredDataDisabledPackages()
وتمرير قائمة بأسماء الحزمة. لاسترداد التطبيقات المقيَّدة حاليًا، اتصل
DevicePolicyManager.getMeteredDataDisabledPackages()
لمعرفة المزيد من المعلومات عن البيانات التي تفرض تكلفة استخدام في Android، اقرأ تحسين بيانات الشبكة الاستخدام:
نقل وحدات التحكّم بسياسة الجهاز (DPC)
يمكن لوحدات التحكّم بسياسة الأجهزة (DPC) نقل ملكية أحد الأجهزة أو ملف العمل إلى وحدة التحكّم بسياسة الجهاز (DPC) أخرى. يمكنك نقل الملكية لنقل بعض الميزات إلى إدارة Android API: لنقل الأجهزة من وحدة التحكّم بسياسة الجهاز (DPC) القديمة، أو لمساعدة مشرفي تكنولوجيا المعلومات في نقل البيانات إلى إدارة الخدمات الجوّالة للمؤسسات (EMM). لأنك عند تغيير ملكية وحدة التحكّم بسياسة الجهاز، لا يمكنك استخدام هذه الميزة لتغيير نوع الإدارة، مثل الترحيل من جهاز مُدار إلى ملف شخصي للعمل أو والعكس صحيح.
يمكنك استخدام مورد XML الذي يحمل سياسات مشرف الجهاز من أجل
الإشارة إلى أنّ هذا الإصدار من وحدة التحكّم بسياسة الجهاز (DPC) يتيح عملية نقل البيانات وحدة التحكّم بسياسة الجهاز (DPC) المستهدفة
يشير إلى إمكانية حصوله على الملكية من خلال تضمين عنصر باسم
<support-transfer-ownership>
يوضح المثال أدناه كيف يمكنك القيام بذلك في
ملف XML الخاص بمشرف الجهاز لدى وحدة التحكّم بسياسة الجهاز (DPC):
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<support-transfer-ownership />
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
</uses-policies>
</device-admin>
يمكن لوحدات التحكّم بسياسة الجهاز (DPC) التي تريد نقل الملكية إلى تطبيق وحدة التحكّم بسياسة الجهاز الجديد التحقُّق مما إذا كانت وحدة التحكّم بسياسة الجهاز (DPC) مستهدفة.
يدعم الإصدار نقل البيانات من خلال استدعاء طريقة DeviceAdminInfo
supportsTransferOwnership()
قبل النقل
فإن وحدة التحكّم بسياسة الجهاز (DPC) المصدر تقع على عاتقها مسؤولية التحقّق من وحدة التحكّم بسياسة الجهاز (DPC) المُستهدفة من خلال
لمقارنة توقيعات التطبيقات. تتضمن الفئة PackageManager
للتعامل مع توقيعات توقيع التعليمات البرمجية.
يحتفظ Android بالنظام وسياسات المستخدم لوحدة التحكّم بسياسة الجهاز المصدر من خلال ملكية
Transfer (نقل): لا تحتاج وحدات التحكّم بسياسة الجهاز (DPC) إلى نقل بياناتها. يمكن لوحدة التحكّم بسياسة الجهاز (DPC) المصدر تمرير بيانات مخصّصة إلى
وحدة التحكّم بسياسة الجهاز (DPC) المستهدفة باستخدام أزواج المفتاح/القيمة في PersistableBundle
. بعد
بنجاح عملية النقل، يمكن لوحدة التحكُّم بسياسة الجهاز (DPC) المستهدفة استرداد هذه البيانات من خلال استدعاء
DevicePolicyManager.getTransferOwnershipBundle()
خطوات نقل ملكية جهاز مُدار أو ملف شخصي للعمل هي نفسه:
- تتحقّق وحدة التحكّم بسياسة الجهاز (DPC) المصدر من أنّ إصدار وحدة التحكّم بسياسة الجهاز المستهدَف يتيح نقل البيانات يؤكد أن توقيع التطبيق لوحدة التحكُّم بسياسة الجهاز (DPC) المستهدف يتطابق مع قيمة متوقعة.
- تطلب وحدة التحكّم بسياسة الجهاز المصدر
transferOwnership()
لبدء النقل. - يجعل النظام وحدة التحكّم بسياسة الجهاز (DPC) المستهدَفة المشرف النشط ويضبطها. بصفتك مالك الجهاز المُدار أو الملف الشخصي للعمل.
- تتلقى وحدة التحكّم بسياسة الجهاز (DPC) الهدف معاودة الاتصال.
onTransferOwnershipComplete()
ويمكنه ضبطها. نفسه باستخدام قيم من وسيطةbundle
. - وفي حال حدوث خطأ في عملية النقل، يعود النظام إلى الملكية إلى
وحدة التحكّم بسياسة الجهاز (DPC) المصدر. إذا كانت وحدة التحكّم بسياسة الجهاز (DPC) المصدر بحاجة إلى تأكيد عملية نقل الملكية
تمت المعالجة بنجاح، اتّصِل بالرقم
isAdminActive()
للتأكّد من أنّ وحدة التحكّم بسياسة الجهاز المصدر ليس المشرف النشط بعد الآن.
تتلقّى جميع التطبيقات التي تعمل في ملف العمل
ACTION_PROFILE_OWNER_CHANGED
البث عندما
تغيير مالك الملف الشخصي. تتلقّى التطبيقات التي تعمل على جهاز مُدار
ACTION_DEVICE_OWNER_CHANGED
البث عندما
تغييرات مالك الجهاز.
الملفات الشخصية للعمل على الأجهزة المُدارة بالكامل
نقل حالتين من وحدة التحكّم بسياسة الجهاز (DPC) التي تعمل كمالك الجهاز ومالك الملف الشخصي يحدث على مرحلتين. عندما يكون الملف الشخصي وملف العمل تابع، أكمل عملية النقل بالترتيب التالي:
- أولاً، انقل ملكية ملف العمل.
- انتظار معاودة الاتصال بخدمة "
DeviceAdminReceiver
"onTransferAffiliatedProfileOwnershipComplete()
للتأكيد على أنّه تم نقل ملف العمل إلى وحدة التحكّم بسياسة الجهاز (DPC) المستهدفة. - أخيرًا، انقل ملكية الجهاز المُدار إلى وحدة التحكّم بسياسة الجهاز (DPC) المستهدفة.
تأجيل التحديثات عبر شبكة غير سلكيّة (OTA)
يمكن لمالكي الأجهزة تأجيل تحديثات نظام "الاتصال عبر الهواء" إلى الأجهزة لمدة تصل إلى 90 يومًا تجميد إصدار نظام التشغيل الذي يعمل على هذه الأجهزة خلال الفترات الحرجة (مثل الأعياد). يفرض النظام موردًا احتياطيًا إلزاميًا مدته 60 يومًا بعد تحديد فترة إيقاف التحديثات لمنع تجميد الجهاز إلى أجل غير مسمى.
خلال فترة إيقاف التحديثات:
- لا تتلقّى الأجهزة أي إشعارات بشأن التحديثات التي تنتظر التحديث عبر الهواء.
- لا تثبّت الأجهزة أي تحديثات عبر الهواء على نظام التشغيل.
- لا يمكن لمستخدمي الأجهزة البحث يدويًا عن تحديثات التحديث عبر الهواء في "الإعدادات".
لضبط فترة إيقاف التحديثات، يُرجى الاتصال
SystemUpdatePolicy.setFreezePeriods()
لأنّ تجميد البيانات
تتكرر الفترة سنويًا، يتم تمثيل تاريخي البدء والانتهاء للفترة
عن طريق الأعداد الصحيحة التي تحسب عدد الأيام منذ بداية السنة. يجب أن يكون يوم البدء
تبدأ بعد 60 يومًا على الأقل من نهاية أي فترة تعليق سابقة. الجهاز
يمكن للمالكين الاتصال بـ SystemUpdatePolicy.getFreezePeriods()
الحصول على قائمة بفترات إيقاف التحديثات التي تم ضبطها سابقًا في عنصر سياسة تحديث النظام
تم DevicePolicyManager.getSystemUpdatePolicy()
لعرض أي فترات توقف عن العمل حددها مالك الجهاز.
تقييد المشاركة في ملف شخصي للعمل
يمكن لمالكي الملفات الشخصية منع المستخدمين من مشاركة البيانات الشخصية مع ملف العمل.
على الجهاز من خلال إضافة قيود المستخدم
DISALLOW_SHARE_INTO_MANAGED_PROFILE
ويمنع هذا القيد التعامل مع الأهداف التالية ومشاركتها:
- تطبيقات الملف الشخصي التي تشارك البيانات والملفات مع تطبيقات ملف العمل.
- تطبيقات ملف العمل التي تختار عناصر من الملف الشخصي، على سبيل المثال، الصور أو الملفات.
بعد ضبط هذا التقييد، يمكن لوحدة التحكّم بسياسة الجهاز (DPC) السماح بأنشطة الملفات الشخصية على مستوى الملفات الشخصية.
الأهداف من خلال استدعاء
addCrossProfileIntentFilter()
المفاتيح وشهادات الأجهزة الآمنة
يضيف Android 9 واجهات برمجة تطبيقات لمساعدتك في استخدام المفاتيح والشهادات التي يمكنك استخدامها. معًا للتعرّف على الأجهزة بشكل آمن. وحدة التحكّم بسياسة الجهاز (DPC) تعمل في مالك الملف الشخصي أو الجهاز المالك أو أداة تثبيت الشهادات المفوَّضة لإكمال المهام التالية:
- إنشاء مفاتيح وشهادات في الأجهزة الآمنة (مثل الأجهزة الموثوق بها
بيئة التنفيذ (TEE) أو العنصر الآمن (SE) في جهاز Android. تشير رسالة الأشكال البيانية
لا تترك المفاتيح التي تم إنشاؤها الأجهزة الآمنة أبدًا ويمكن استخدامها من خلال نظام التشغيل Android
KeyChain: اتصل
DevicePolicyManager.generateKeyPair()
توفير (راجِعKeyPairGenerator
) وأي معرّفات أجهزة تستخدمها يريد أن يتم التصديق عليه، مثل الرقم التسلسلي أو IMEI. لمزيد من المعلومات حول الأمان التغييرات على الأجهزة، راجِع قسم الأمان في نظام التشغيل Android 9 التحسينات. - ربط شهادة بمفتاح حالي تم إنشاؤه بواسطة الجهاز اتصل
توفير
DevicePolicyManager.setKeyPairCertificate()
الاسم المستعار للمفتاح الحالي وسلسلة الشهادات—بدءًا من ورقة البيانات الشهادة وتضمين سلسلة الثقة بالترتيب. - تأكَّد من أنّ الجهاز الآمن تحمي المفتاح قبل استخدامه. للتحقق والآليات التي تحمي المفتاح، اتّبِع الخطوات الواردة في قسم المصادقة:
- يمكن لمالكي الأجهزة ومُثبّتي الشهادات المفوَّضين تلقّي رسائل إلكترونية موقَّعة.
بيان الأجهزة معرّفات الأجهزة بإصدارات نظام Android. اتصل
DevicePolicyManager.generateKeyPair()
تجتاز واحدًا أو أكثر منID_TYPE_BASE_INFO
،ID_TYPE_SERIAL
،ID_TYPE_IMEI
، أوID_TYPE_MEID
فيidAttestationFlags
الوسيطة. تتضمن الشهادة التي تم إرجاعها الأجهزة المعرفات في سجل المصادقة. وإذا كنت لا تريد تضمين معرّفات الأجهزة، عليك تمرير0
يمكن لمالكي الملفات الشخصية تلقّي معلومات الشركة المصنّعة فقط (من خلال تمرير معلوماتID_TYPE_BASE_INFO
). للتأكّد من أنّ الجهاز يمكنه مصادقة أرقام التعريف، يُرجى الاتصالisDeviceIdAttestationSupported()
- منع مستخدمي الأجهزة من إساءة استخدام مفاتيح المؤسسة (في المهام غير التابعة للمؤسسة)
وذلك من خلال إلغاء اختيار الشهادات الرئيسية لا يتضمن النظام
شهادات غير قابلة للاختيار في لوحة المنتقي. في
DeviceAdminReceiver.onChoosePrivateKeyAlias()
لمعاودة الاتصال، قم بإرجاع الاسم المستعار إلى مفتاح مؤسستك حتى يتمكن النظام اختيار الشهادة تلقائيًا نيابةً عن المستخدم. لإنشاء مفتاح غير قابل للاختيار، يُرجى استدعاء طرقDevicePolicyManager
التالية:setKeyPairCertificate()
و تمريرfalse
للوسيطةisUserSelectable
.installKeyPair (ComponentName, PrivateKey, Certificate[], String, int)
وحذفINSTALLKEY_SET_USER_SELECTABLE
من الوسيطةflags
.
من خلال الجمع بين واجهات برمجة التطبيقات هذه، يمكن للمؤسسات التعرّف على الأجهزة بشكل آمن والتأكّد من عملها وسلامتها قبل إتاحة الوصول إليها:
- ينشئ جهاز Android مفتاحًا خاصًا جديدًا في الأجهزة الآمنة. ولأن المفتاح الخاص لا يترك الأجهزة الآمنة أبدًا، فإنه يظل سريًا.
- يستخدم الجهاز المفتاح لإنشاء طلب توقيع شهادة وإرساله. (CSR) إلى الخادم. يتضمن ممثل خدمة العملاء سجل المصادقة الذي يحتوي على معرّفات الأجهزة.
- يتحقّق الخادم من صحة سلسلة الشهادات (المزوّدة بحق الوصول إلى شهادة Google). ويستخرج البيانات الوصفية للجهاز من سجل المصادقة.
- يؤكد الخادم أن الأجهزة الآمنة تحمي المفتاح الخاص تطابق أرقام تعريف الأجهزة مع سجلات المؤسسة. يمكن للخادم أيضًا التحقّق من أن نظام Android وإصدار التصحيح يلبيان أي متطلبات.
- ينشئ الخادم شهادة من CSR ويرسل الشهادة إلى الجهاز.
- يعمل الجهاز على إقران الشهادة بالمفتاح الخاص (الذي يظل في أجهزة آمنة) تمكين التطبيقات من الاتصال بخدمات المؤسسة.
المزيد من واجهات برمجة التطبيقات المتعلقة بالأمان والميزات والتغييرات
أرقام تعريف سجلات الأمان وسجلات الشبكة
يتضمّن Android 9 أرقام تعريف في سجلّات الأمان ونشاط الشبكة. المعرّف الرقمي يزداد بشكل رتيب مع كل حدث، ما يسهِّل على مشرفي تكنولوجيا المعلومات تحديد الثغرات في سجلاتهم. لأنّ سجلات الأمان وسجلات الشبكة منفصلة مجموعات البيانات، يحتفظ النظام بقيم معرف منفصلة.
يمكنك الاتصال على الرقم SecurityEvent.getId()
،
DnsEvent.getId()
ConnectEvent.getId()
للحصول على قيمة المعرّف النظام
يعيد ضبط المعرّف عندما تفعِّل وحدة التحكّم بسياسة الجهاز (DPC) التسجيل أو عند إعادة تشغيل الجهاز.
تم جلب سجلّات الأمان من خلال استدعاء.
DevicePolicyManager.retrievePreRebootSecurityLogs()
لا تقم بتضمين هذه المعرفات.
التسجيل الأمني
يعيّن التسجيل الأمني لكل SecurityEvent
مستوى سجل. للحصول على مستوى السجل،
الاتصال بالرقم getLogLevel()
تُرجع هذه الطريقة قيمة على مستوى السجل
يمكن أن يكون واحدًا مما يلي: LEVEL_INFO
أو LEVEL_WARNING
أو
LEVEL_ERROR
يسجِّل نظام Android 9 الأحداث المُدرَجة في الجدول أدناه في قسم الأمان
السجلّات للتحقّق من علامة حدث، يمكنك الاتصال بالرقم getTag()
. إلى
لاسترداد بيانات الحدث، فما عليك سوى طلب getData()
.
الإشارة | وصف الحدث |
---|---|
TAG_CERT_AUTHORITY_INSTALLED |
يشير هذا المصطلح إلى محاولة تثبيت شهادة جذر جديدة في وحدة تخزين بيانات اعتماد النظام. |
TAG_CERT_AUTHORITY_REMOVED |
محاولة لإزالة شهادة جذر من وحدة تخزين بيانات اعتماد النظام |
TAG_CERT_VALIDATION_FAILURE |
لم تجتَز شهادة Wi-Fi فحص التحقق من الصحة أثناء الاتصال. |
TAG_CRYPTO_SELF_TEST_COMPLETED |
أكمل النظام الاختبار الذاتي للتشفير. |
TAG_KEYGUARD_DISABLED_FEATURES_SET |
أوقف تطبيق مشرف ميزات شاشة قفل الجهاز أو الملف الشخصي للعمل. |
TAG_KEY_DESTRUCTION |
يشير هذا المصطلح إلى محاولة لحذف مفتاح تشفير. |
TAG_KEY_GENERATED |
يشير هذا المصطلح إلى محاولة إنشاء مفتاح تشفير جديد. |
TAG_KEY_IMPORT |
محاولة استيراد مفتاح تشفير جديد. |
TAG_KEY_INTEGRITY_VIOLATION |
رصَد Android مفتاح تشفير أو مصادقة تالفًا. |
TAG_LOGGING_STARTED |
بدأ تسجيل التسجيل الأمني. |
TAG_LOGGING_STOPPED |
توقف التسجيل عن طريق الأمان. |
TAG_LOG_BUFFER_SIZE_CRITICAL |
بلغ المخزن المؤقت لسجلات الأمان نسبة% 90 من السعة. |
TAG_MAX_PASSWORD_ATTEMPTS_SET |
حدّد تطبيق مشرف عدد المحاولات المسموح بها لإدخال كلمة المرور غير الصحيحة. |
TAG_MAX_SCREEN_LOCK_TIMEOUT_SET |
ضبط تطبيق مشرف حدًا أقصى لمهلة قفل الشاشة. |
TAG_MEDIA_MOUNT |
وسائط التخزين القابلة للإزالة المثبَّتة على الجهاز |
TAG_MEDIA_UNMOUNT |
وسائط التخزين القابلة للإزالة غير المثبَّتة على الجهاز |
TAG_OS_SHUTDOWN |
تم إيقاف نظام Android. |
TAG_OS_STARTUP |
بدأ تشغيل نظام Android. |
TAG_PASSWORD_COMPLEXITY_SET |
ضبط تطبيق مشرف على متطلبات تعقيد كلمة المرور. |
TAG_PASSWORD_EXPIRATION_SET |
حدّد تطبيق مشرف مدة لانتهاء صلاحية كلمة المرور. |
TAG_PASSWORD_HISTORY_LENGTH_SET |
ضبط أحد التطبيقات الإدارية طول مدة سجلّ كلمات المرور، ما يمنع المستخدمين من إعادة استخدام كلمات المرور القديمة. |
TAG_REMOTE_LOCK |
أقفَل تطبيق مشرف الجهاز أو الملف الشخصي للعمل. |
TAG_USER_RESTRICTION_ADDED |
وضع تطبيق مشرف قيودًا على المستخدمين. |
TAG_USER_RESTRICTION_REMOVED |
أزال تطبيق المشرف حظرًا على المستخدمين. |
TAG_WIPE_FAILURE |
تعذّرت محاولة حجب بيانات جهاز أو ملف شخصي للعمل. |
تحدّي شاشة قفل ملف العمل
بدءًا من نظام Android 9، يمكن لمالكي الملفات الشخصية أن يطلبوا من المستخدمين ضبط قفل منفصل
تحدي الشاشة لملف العمل باستخدام
القيود المفروضة على المستخدمين في DISALLOW_UNIFIED_PASSWORD
. إلى
التحقق مما إذا كان المستخدم لديه تحدي شاشة القفل نفسه المضبوط على جهازه
ملف العمل، مكالمة
DevicePolicyManager.isUsingUnifiedPassword()
إذا كان الجهاز يحتوي على شاشة قفل منفصلة لملف العمل،
DevicePolicyManager.setMaximumTimeToLock()
يضبط فقط
المهلة النهائية لشاشة القفل لملف العمل بدلاً من الجهاز بأكمله.
الوصول إلى أدوات المطوّرين
للمساعدة في الاحتفاظ ببيانات العمل في ملف العمل، تستخدم أداة Android Debug Bridge (adb) لا يمكن الوصول إلى الأدلة والملفات في ملف العمل.
توفير المزيد من خيارات المقاييس الحيوية
يضيف Android 9 تحكّمًا أكثر دقة في مصادقة الأجهزة بالمقاييس الحيوية في
شاشة قفل ملف العمل. الاتصال بالحالي
DevicePolicyManager.setKeyguardDisabledFeatures()
باستخدام KEYGUARD_DISABLE_FACE
KEYGUARD_DISABLE_IRIS
لإيقاف جميع طرق المصادقة بالمقاييس الحيوية التي يوفّرها الجهاز، أضِف KEYGUARD_DISABLE_BIOMETRICS
.
إيقاف سياسات مشرفي الأجهزة نهائيًا
يصنّف Android 9 السياسات الواردة أدناه على أنّها متوقّفة نهائيًا لوحدات التحكّم بسياسة الجهاز (DPC) باستخدام device. المشرف. لا تزال السياسات سارية في Android 9 كما فعلوا سابقًا. بدءًا من إصدار Android 10، ستطرح السياسات نفسها رسالة SecurityException (استثناء الأمان) عند استدعائها بواسطة مشرف الجهاز.
USES_POLICY_DISABLE_CAMERA
USES_POLICY_DISABLE_KEYGUARD_FEATURES
USES_POLICY_EXPIRE_PASSWORD
USES_POLICY_LIMIT_PASSWORD
تستخدم بعض التطبيقات مشرف الجهاز لإدارة أجهزة المستهلك. بالنسبة مثل، قفل جهاز مفقود ومسحه. سيستمر اتّباع السياسات التالية ليكون متاحًا لتفعيل ما يلي:
لمزيد من المعلومات حول هذه التغييرات، يُرجى الاطّلاع على مشرف الجهاز. نهائيًا.
تسجيل رمز الاستجابة السريعة بسهولة
مكتبة رموز استجابة سريعة مضمَّنة
الإصدار 9 من Android مزود بمكتبة رموز استجابة سريعة لتسهيل استخدام الجهاز الذي يعمل باستخدام رمز الاستجابة السريعة توفير المتطلبات اللازمة. لم يعُد مشرفو تكنولوجيا المعلومات مضطرين إلى إدخال تفاصيل شبكة Wi-Fi يدويًا لإعدادها. أحد الأجهزة. بدلاً من ذلك، يمكن تضمين تفاصيل Wi-Fi هذه مع Android 9 داخل رمز الاستجابة السريعة. عندما يمسح مشرف تكنولوجيا المعلومات رمز الاستجابة السريعة ضوئيًا باستخدام حساب تملكه الشركة يتصل الجهاز تلقائيًا بشبكة Wi-Fi ويدخل في مرحلة توفير المتطلبات اللازمة بدون أي إدخال يدوي إضافي.
تتوافق طريقة توفير رمز الاستجابة السريعة مع الميزات الإضافية التالية تحديد تفاصيل Wi-Fi:
EXTRA_PROVISIONING_WIFI_HIDDEN
EXTRA_PROVISIONING_WIFI_PAC_URL
EXTRA_PROVISIONING_WIFI_PASSWORD
EXTRA_PROVISIONING_WIFI_PROXY_BYPASS
EXTRA_PROVISIONING_WIFI_PROXY_HOST
EXTRA_PROVISIONING_WIFI_PROXY_PORT
EXTRA_PROVISIONING_WIFI_SECURITY_TYPE
EXTRA_PROVISIONING_WIFI_SSID
ضبط التاريخ والمنطقة الزمنية باستخدام الميزات الإضافية لإدارة الحسابات
تدعم طريقة توفير رمز الاستجابة السريعة توفير المتطلبات الإضافية لتحديد الوقت المنطقة الزمنية على الجهاز:
خيارات محو البيانات
يمكن لمشرفي الجهاز عرض رسالة مخصَّصة للمستخدمين عند إزالة عمل.
أو مستخدم ثانوي. تساعد الرسالة مستخدمي الأجهزة في فهم أن
أزال مشرف تكنولوجيا المعلومات ملف العمل أو المستخدم الثانوي. اتصل
wipeData(int, CharSequence)
وتقديم فيديو Shorts
التوضيحية. عندما يطلب المستخدم الأساسي أو مالك الجهاز،
لا يعرض رسالة ويبدأ إعادة ضبط الجهاز على الإعدادات الأصلية.
لإزالة بيانات الاشتراك من شريحة SIM مضمّنة لواجهة eUICC، يُرجى الاتصال
wipeData()
وإدراج WIPE_EUICC
في flags
الوسيطة.
طرق لمالكي الملفات التجارية التابعة
تتوفّر الطرق التالية للملف التجاري التابع. المالكون:
DevicePolicyManager.setKeyguardDisabled()
DevicePolicyManager.setStatusBarDisabled()
PackageInstaller.createSession()