دوربین های سیستم

در دستگاه‌هایی که اندروید ۱۱ یا بالاتر را اجرا می‌کنند، چارچوب اندروید از دوربین‌های سیستمی پشتیبانی می‌کند، که دستگاه‌های دوربینی هستند که فقط برای پردازش‌هایی با مجوز android.permission.SYSTEM_CAMERA و مجوزهای معمولی دوربین قابل مشاهده هستند. مجوز android.permission.SYSTEM_CAMERA که در اندروید ۱۱ معرفی شد، دارای سطح حفاظت 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 دوربین روی دستگاه‌های دوربین سیستم اجرا می‌شوند.