במכשירים עם 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 של המצלמה פועלות במכשירים עם מצלמת מערכת.