Системные камеры

На устройствах под управлением 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 камер выполняются на системных камерах.