در دستگاههایی که دارای Android 11 یا بالاتر هستند، چارچوب 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 دوربین روی دستگاه های دوربین سیستم اجرا می شود.