در دستگاههای دارای 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 دوربین روی دستگاه های دوربین سیستم اجرا می شود.