系統相機

在運行 Android 11 或更高版本的設備上,Android 框架支持系統攝像頭,這些攝像頭設備僅對具有android.permission.SYSTEM_CAMERA權限和常規攝像頭權限的進程可見。 Android 11 中引入的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 測試都在系統相機設備上運行。