在運行 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 測試都在系統相機設備上運作。