Auf Geräten mit Android 11 oder höher unterstützt das Android-Framework Systemkameras. Das sind Kamerageräte, die nur für Prozesse mit der Berechtigung android.permission.SYSTEM_CAMERA
und regulären Kameraberechtigungen sichtbar sind.
Die in Android 11 eingeführte Berechtigung android.permission.SYSTEM_CAMERA
hat das Schutzniveau system|signature
. Das bedeutet, dass diese Berechtigung nur Apps erteilt werden kann, die auf der Systempartition installiert sind oder mit demselben Zertifikat wie das System signiert sind. Öffentliche Drittanbieter-Apps können nicht auf Systemkameras zugreifen.
Systemkameras sind nützlich für Gerätehersteller, die Funktionen implementieren möchten, für die Zugriff auf eine Kamera erforderlich ist, die aber auch auf privilegierte Apps oder System-Apps beschränkt sind.
Da System-Apps, denen die Berechtigung android.permission.SYSTEM_CAMERA
gewährt wird, auch die Berechtigung android.permission.CAMERA
haben müssen, können Nutzer normale CAMERA
-Berechtigungen widerrufen, um zu verhindern, dass eine solche App auf die Kameras auf dem Gerät zugreift.
Implementierung
Damit ein bestimmtes Kameragerät als Systemkamera verwendet werden kann, muss die Kamera-HAL ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA
in ihrer Liste der Funktionen angeben.
Wenn Sie eine App erstellen möchten, die Zugriff auf eine Systemkamera hat, muss die App in der gerätespezifischen Datei privapp-permissions.xml
auf der Zulassungsliste stehen. In dieser Datei werden die Apps angegeben, denen die Berechtigung android.permission.SYSTEM_CAMERA
erteilt werden muss.
Zertifizierungsstufe
Führen Sie den CTS-Test android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery
aus, um zu prüfen, ob öffentliche Apps Systemkameras auf dem Gerät erkennen können.
Alle Kamera-CTS-Tests werden auf Systemkameras ausgeführt.