Od 27 marca 2025 r. zalecamy używanie android-latest-release
zamiast aosp-main
do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Kamery systemowe
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Na urządzeniach z Androidem 11 lub nowszym framework Androida obsługuje aparaty systemowe, czyli urządzenia z aparatem, które są widoczne tylko dla procesów z uprawnieniami android.permission.SYSTEM_CAMERA
i zwykłymi uprawnieniami do aparatu.
Uprawnienie android.permission.SYSTEM_CAMERA
, wprowadzone w Androidzie 11, ma poziom ochrony system|signature
. Oznacza to, że to uprawnienie mogą uzyskać tylko aplikacje zainstalowane na partycji systemowej i podpisane tym samym certyfikatem co system. Aplikacje publiczne innych firm nie mają dostępu do kamer systemowych.
Kamery systemowe są przydatne dla producentów urządzeń, którzy chcą wdrażać funkcje wymagające dostępu do aparatu, ale ograniczone do aplikacji z uprawnieniami lub systemowych.
Aplikacje systemowe, które mają uprawnienia android.permission.SYSTEM_CAMERA
, muszą mieć też uprawnienia android.permission.CAMERA
. Użytkownicy mogą cofnąć normalne uprawnienia CAMERA
, aby uniemożliwić takiej aplikacji dostęp do kamer na urządzeniu.
Implementacja
Aby dane urządzenie z kamerą stało się kamerą systemową, interfejs HAL kamery musi uwzględniać je na liście swoich możliwościANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA
.
Aby utworzyć aplikację, która ma dostęp do aparatu systemowego, musi ona znaleźć się na liście dozwolonych w pliku privapp-permissions.xml
, który określa aplikacje, którym należy przyznać uprawnienia.android.permission.SYSTEM_CAMERA
Weryfikacja
Aby sprawdzić, czy publiczna aplikacja nie może wykryć żadnej kamery systemowej na urządzeniu, uruchom test android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery
CTS.
Wszystkie testy CTS aparatu są przeprowadzane na urządzeniach z aparatem systemowym.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-26 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-26 UTC."],[],[],null,["# System cameras\n\nOn devices running Android 11 or higher, the Android\nframework supports system\ncameras, which are camera devices that are visible only to processes with the\n`android.permission.SYSTEM_CAMERA` permission and regular camera permissions.\nThe `android.permission.SYSTEM_CAMERA` permission, introduced in\nAndroid 11, has\na protection level of `system|signature`. This means that only apps installed on\nthe system partition with or signed with the same certificate as the system can\nbe granted this permission. Third-party public apps can't access system cameras.\n\nSystem cameras are useful for device manufacturers that want to implement\nfeatures that require access to a camera but are also restricted to privileged\nor system apps.\n\nBecause systems apps that are granted the\n`android.permission.SYSTEM_CAMERA` permission must also have the\n[`android.permission.CAMERA`](https://developer.android.com/reference/android/Manifest.permission#CAMERA)\npermission, users can choose to revoke normal `CAMERA` permissions to prevent\nsuch an app from accessing the cameras on the device.\n\nImplementation\n--------------\n\nTo make a particular camera device a system camera, the camera HAL must\nadvertise\n[`ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/camera/metadata/3.5/types.hal#120)\nin its capabilities list.\n\nTo create an app that has access to a system camera, the app must be allowlisted\nin the device-specific `privapp-permissions.xml` file, which specifies the apps\nthat the\n[`android.permission.SYSTEM_CAMERA`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/core/res/AndroidManifest.xml#1312)\npermission must be granted to.\n\nValidation\n----------\n\nTo verify that no system cameras on the device can be discovered by a public\napp, run the\n`android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery` CTS\ntest.\n\nAll\n[camera CTS tests](/docs/compatibility/cts/camera-hal#cts_tests)\nrun on system camera devices."]]