على الأجهزة التي تعمل بالإصدار 11 من نظام التشغيل Android أو الإصدارات الأحدث، يتيح إطار عمل Android استخدام كاميرات
النظام، وهي كاميرات لا تظهر إلا للعمليات التي لديها إذن
android.permission.SYSTEM_CAMERA
وأذونات الكاميرا العادية.
إذن android.permission.SYSTEM_CAMERA
الذي تم طرحه في
Android 11 له
مستوى حماية هو system|signature
. ويعني ذلك أنّه لا يمكن منح هذا الإذن إلا للتطبيقات المثبَّتة على ملف التمهيد (الذي يُعرف أيضًا باسم "قسم النظام") باستخدام الشهادة نفسها التي يستخدمها النظام أو التي تم توقيعها بها. لا يمكن للتطبيقات المتاحة للجميع التابعة لجهات خارجية الوصول إلى كاميرات النظام.
تكون كاميرات النظام مفيدة لصنّاع الأجهزة الذين يريدون استخدام ميزات تتطلّب الوصول إلى الكاميرا، ولكن تكون متاحة أيضًا لتطبيقات النظام أو التطبيقات المميّزة.
بما أنّ تطبيقات النظام التي تم منحها إذن
android.permission.SYSTEM_CAMERA
يجب أن يكون لديها أيضًا إذن
android.permission.CAMERA
، يمكن للمستخدمين اختيار إبطال أذونات CAMERA
العادية لمنع
مثل هذا التطبيق من الوصول إلى الكاميرات على الجهاز.
التنفيذ
لجعل كاميرا معيّنة كاميرا نظام، يجب أن يُعلِن واجهة HAL للكاميرا عن ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA
في قائمة إمكاناتها.
لإنشاء تطبيق يمكنه الوصول إلى كاميرا نظام، يجب أن يكون التطبيق مُدرَجًا في القائمة المسموح بها
في ملف privapp-permissions.xml
الخاص بالجهاز، والذي يحدِّد التطبيقات
التي يجب منح الإذن
android.permission.SYSTEM_CAMERA
لها.
التحقُّق
للتأكّد من أنّه لا يمكن لأي تطبيق علنيٍ
اكتشاف أي كاميرات نظام على الجهاز، يمكنك إجراء اختبار
android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery
CTS.
يتم تنفيذ جميع اختبارات مجموعة اختبار التوافق (CTS) للكاميرا على أجهزة كاميرا النظام.