在搭載 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 測試都會在系統相機裝置上執行。