Máy ảnh hệ thống

Trên các thiết bị chạy Android 11 trở lên, khung Android hỗ trợ camera hệ thống. Đây là các thiết bị camera chỉ hiển thị cho các quy trình có quyền android.permission.SYSTEM_CAMERA và các quyền camera thông thường. Quyền android.permission.SYSTEM_CAMERA được ra mắt trong Android 11 có cấp độ bảo vệ là system|signature. Điều này có nghĩa là chỉ những ứng dụng được cài đặt trên phân vùng hệ thống hoặc được ký bằng cùng một chứng chỉ với hệ thống mới có thể được cấp quyền này. Các ứng dụng công khai của bên thứ ba không thể truy cập vào camera hệ thống.

Camera hệ thống rất hữu ích cho các nhà sản xuất thiết bị muốn triển khai các tính năng yêu cầu quyền truy cập vào camera nhưng cũng bị hạn chế đối với các ứng dụng đặc quyền hoặc ứng dụng hệ thống.

Vì các ứng dụng hệ thống được cấp quyền android.permission.SYSTEM_CAMERA cũng phải có quyền android.permission.CAMERA, nên người dùng có thể chọn thu hồi các quyền CAMERA thông thường để ngăn ứng dụng đó truy cập vào camera trên thiết bị.

Triển khai

Để biến một thiết bị camera cụ thể thành camera hệ thống, HAL camera phải quảng cáo ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA trong danh sách các tính năng của mình.

Để tạo một ứng dụng có quyền truy cập vào camera hệ thống, ứng dụng đó phải được đưa vào danh sách cho phép trong tệp privapp-permissions.xml dành riêng cho thiết bị. Tệp này chỉ định các ứng dụng mà quyền android.permission.SYSTEM_CAMERA phải được cấp cho.

Xác nhận kết quả

Để xác minh rằng không có camera hệ thống nào trên thiết bị có thể được phát hiện bởi một ứng dụng công khai, hãy chạy thử nghiệm CTS android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery.

Tất cả các thử nghiệm CTS camera đều chạy trên các thiết bị camera hệ thống.