Kamery systemowe

Na urządzeniach z systemem Android 11 lub nowszym platforma Android obsługuje kamery systemowe, czyli urządzenia kamer widoczne tylko dla procesów z uprawnieniem android.permission.SYSTEM_CAMERA i zwykłymi uprawnieniami do kamer. Uprawnienie android.permission.SYSTEM_CAMERA wprowadzone w systemie Android 11 ma poziom ochrony system|signature . Oznacza to, że tylko aplikacje zainstalowane na partycji systemowej lub podpisane tym samym certyfikatem co system mogą otrzymać to uprawnienie. Aplikacje publiczne innych firm nie mają dostępu do kamer systemowych.

Kamery systemowe są przydatne dla producentów urządzeń, którzy chcą wdrożyć funkcje wymagające dostępu do kamery, ale także ograniczone do aplikacji uprzywilejowanych lub systemowych.

Ponieważ aplikacje systemowe, którym przyznano uprawnienie android.permission.SYSTEM_CAMERA , muszą mieć także uprawnienie android.permission.CAMERA , użytkownicy mogą odwołać normalne uprawnienia CAMERA , aby uniemożliwić takiej aplikacji dostęp do kamer na urządzeniu.

Realizacja

Aby konkretna kamera stała się kamerą systemową, warstwa HAL kamery musi reklamować ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA na swojej liście możliwości.

Aby utworzyć aplikację mającą dostęp do kamery systemowej, musi ona znajdować się na białej liście w pliku privapp-permissions.xml specyficznym dla urządzenia, który określa aplikacje, którym należy przyznać uprawnienie android.permission.SYSTEM_CAMERA .

Walidacja

Aby sprawdzić, czy aplikacja publiczna nie wykrywa żadnych kamer systemowych na urządzeniu, uruchom test CTS android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery .

Wszystkie testy CTS kamer działają na urządzeniach z kamerami systemowymi.