Camera Permission in mobilen Apps — was es ist, Zugriffsarten und wie es funktioniert

Autor: IT Sectr Veröffentlicht: 2026-05-21 Lesezeit: 8 Min.

Camera Permission ist eine Berechtigung, die eine mobile App vom Benutzer anfordert, um auf die Gerätekamera zuzugreifen. Ohne sie kann die App keine Fotos aufnehmen, QR-Codes scannen oder Videoanrufe starten. Laut Android Developers, 2024, sind alle Apps, die die Kamera auf Android 6.0 und höher verwenden, verpflichtet, die Berechtigung zur Laufzeit über einen Systemdialog anzufordern.

Wichtige Punkte

  • Camera Permission ist eine obligatorische Berechtigung für Apps, die mit der Gerätekamera auf iOS und Android arbeiten.
  • Android verwendet Manifest.permission.CAMERA mit einer obligatorischen Laufzeitanforderung ab API 23.
  • iOS erfordert das Hinzufügen des Schlüssels NSCameraUsageDescription in Info.plist mit einer Beschreibung des Grundes für die Kameranutzung.
  • Kontextbezogene Anforderung (z. B. beim Drücken der Schaltfläche „Foto aufnehmen“) erhöht die Zustimmungsrate erheblich.
  • Zugriffsverweigerung sollte durch ein alternatives Szenario behandelt werden: Auswahl aus der Galerie oder Hochladen einer Datei.

Was ist Camera Permission?

Camera Permission ist eine Systemberechtigung, die den Zugriff von Apps auf die Kamera eines mobilen Geräts regelt. Mobile Plattformen betrachten die Kamera als sensible Ressource, da sie das Aufzeichnen von Videos und das Fotografieren der Umgebung des Benutzers in Echtzeit ermöglicht.

Unter Android gehört die CAMERA-Berechtigung zur Kategorie der gefährlichen Berechtigungen und erfordert eine obligatorische Laufzeitanforderung. Unter iOS ist das Hinzufügen des Schlüssels NSCameraUsageDescription in Info.plist eine obligatorische Voraussetzung für jede App, die auf die Kamera zugreift. Ohne diesen Schlüssel stürzt die App ab, wenn versucht wird, die Kamera zu öffnen.

Laut einer Studie von Statista (2024) verwenden etwa 68 % der mobilen Apps in den Top 100 des App Store die Kamera in irgendeiner Form: vom Scannen von QR-Codes bis zur vollständigen Foto- und Videoaufnahme. Gleichzeitig verweigern 37 % der Benutzer den Kamerazugriff, wenn sie nicht verstehen, warum die App diese Berechtigung benötigt.

Camera Permission auf Android

Camera Permission auf Android wird durch eine Deklaration im Manifest und eine anschließende Laufzeitanforderung angefordert. Ab Android 6.0 kann die CAMERA-Berechtigung nicht nur bei der Installation erlangt werden — der Benutzer muss den Zugriff ausdrücklich bestätigen.

Deklaration in AndroidManifest.xml

Um die Kamera unter Android zu verwenden, müssen Sie die entsprechende Deklaration zur Manifestdatei hinzufügen. Ohne sie erlaubt das System der App nicht, die Kamera zu öffnen, selbst mit einer Laufzeitanforderung.

xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />

Das Attribut android:required=false für uses-feature ermöglicht die Installation der App auf Geräten ohne Kamera. Dies ist wichtig, wenn die Kamera keine zwingende Komponente für den gesamten App-Betrieb ist.

Laufzeitanforderung in Kotlin

Die Camera Permission-Anforderung erfolgt über die Activity Result API. Nach Erhalt der Antwort überprüft die App den Status und startet die Kamera oder zeigt eine Erklärung an.

kotlin
private val cameraLauncher =
    registerForActivityResult(ActivityResultContracts.TakePicture()) { success ->
    if (success) {
        // Foto gespeichert
        showPhoto(photoUri)
    }
}

private val permissionLauncher =
    registerForActivityResult(ActivityResultContracts.RequestPermission()) { granted ->
    if (granted) {
        openCamera()
    } else {
        showPermissionDenied()
    }
}

fun capturePhoto() {
    if (ContextCompat.checkSelfPermission(this,
        Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
        openCamera()
    } else {
        permissionLauncher.launch(Manifest.permission.CAMERA)
    }
}

Android 11+ Funktionen

Ab Android 11 wird der Systemdialog nicht mehr angezeigt, wenn der Benutzer den Kamerazugriff zweimal verweigert hat. Das Flag Never Ask Again wird automatisch gesetzt, und die App kann den Benutzer nur noch über Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) zu den Systemeinstellungen weiterleiten. Der Entwickler sollte eine Überprüfung von shouldShowRequestPermissionRationale einbauen, um rechtzeitig einen vorbereitenden Bildschirm anzuzeigen.

Camera Permission auf iOS

Camera Permission auf iOS wird über den NSCameraUsageDescription-Schlüssel in Info.plist und einen Aufruf von AVCaptureDevice.requestAccess verwaltet. Apple überprüft streng die Rechtfertigung der Anfrage: Wenn die App die Kamera auf eine für den Benutzer nicht offensichtliche Weise verwendet, kann der App Store die App ablehnen.

Konfiguration von Info.plist

Eine obligatorische Bedingung für den Kamerazugriff unter iOS ist das Hinzufügen des NSCameraUsageDescription-Schlüssels zur Info.plist-Datei. Die Wertzeichenfolge wird im Systemdialog als Grund für die Anfrage angezeigt.

xml
<key>NSCameraUsageDescription</key>
<string>Die App benötigt Kamerazugriff, um Profilfotos zu erstellen und QR-Codes zu scannen.</string>

Anforderung in Swift

In Swift erfolgt die Anforderung über die statische Methode AVCaptureDevice.requestAccess. Nach Erhalt der Antwort verarbeitet die App den Status und startet die Aufnahmesitzung.

swift
import AVFoundation

func requestCameraAccess() {
    AVCaptureDevice.requestAccess(for: .video) { granted in
        DispatchQueue.main.async {
            if granted {
                self.setupCameraSession()
            } else {
                self.showSettingsAlert()
            }
        }
    }
}

private func setupCameraSession() {
    guard let device = AVCaptureDevice.default(.for: .video)
    else { return }
    do {
        let input = try AVCaptureDeviceInput(device: device)
        let session = AVCaptureSession()
        session.addInput(input)
        session.startRunning()
    } catch {
        print("Camera error: \(error)")
    }
}

Überprüfung des aktuellen Status

Vor der Anforderung des Kamerazugriffs wird empfohlen, den aktuellen Autorisierungsstatus über AVCaptureDevice.authorizationStatus(for: .video) zu überprüfen. Dies vermeidet unnötige Systemdialogaufrufe und behandelt Fälle korrekt, in denen der Benutzer bereits eine Entscheidung getroffen hat. Der Status kann .notDetermined, .restricted, .denied oder .authorized sein.

Kamera-Nutzungsszenarien

Camera Permission wird in verschiedenen Szenarien angewendet, vom einfachen Scannen bis zur vollständigen Videoaufnahme. Jedes Szenario hat seine eigenen Anforderungen an Implementierung und Berechtigungshandhabung.

QR- und Barcode-Scannen

Unter iOS wird AVCaptureMetadataOutput aus dem AVFoundation-Framework zum Scannen von QR-Codes verwendet, was Camera Permission erfordert. Unter Android wird die Verwendung von ML Kit Barcode Scanning von Google empfohlen. Es ist wichtig zu beachten, dass das Scannen von QR-Codes die Kamera selbst verwendet, nicht eine Bildanalysebibliothek — daher ist Camera Permission obligatorisch.

Foto- und Videoaufnahme

Die Standard-Foto- oder Videoaufnahme erfordert Camera Permission sowohl auf iOS als auch auf Android. Unter Android können Sie Intent(MediaStore.ACTION_IMAGE_CAPTURE) verwenden, das die Systemkamera-App öffnet — in diesem Fall fordert die System-App die Berechtigung an, nicht Ihre. Für die In-App-Kameravorschau (CameraX, Camera2 API) ist jedoch Ihre eigene Berechtigung erforderlich.

Videoanrufe und AR

Videoanruf-Apps (Zoom, Google Meet) und Augmented-Reality-Apps (ARCore, ARKit) fordern Camera Permission an, um Video von der Front- oder Rückkamera aufzunehmen. In diesem Fall sollte die Anfrage besonders sorgfältig erklärt werden, da der Benutzer nicht erwarten kann, dass eine AR-Möbelanprobe-App die Kamera anfordert.

Konfiguration der Aufnahmeparameter

Bei der Arbeit mit der Kamera unter iOS können Sie die Aufnahmeparameter über AVCaptureDeviceInput und AVCapturePhotoOutput konfigurieren. Unter Android vereinfacht CameraX die Konfiguration über ImageCapture-, VideoCapture- und Preview-Callbacks. Für jede Einstellung müssen Sie die gewünschte Auflösung, Zoomstufe und Fokusart angeben. Die Wahl der richtigen Aufnahmekonfiguration wirkt sich direkt auf die App-Leistung und den Batterieverbrauch aus.

Fehlerbehandlung bei der Arbeit mit der Kamera

Bei der Arbeit mit der Kamera können verschiedene Fehler auftreten. Die Kamera kann von einer anderen App belegt, in den Systemdatenschutzeinstellungen deaktiviert oder auf dem Gerät nicht vorhanden sein. Unter Android wird empfohlen, CameraAccessException beim Aufruf von CameraManager.openCamera zu behandeln. Unter iOS überprüfen Sie AVCaptureDevice.authorizationStatus und behandeln Sie die Verweigerung korrekt, indem Sie dem Benutzer anbieten, zu den Einstellungen zu gehen, um den Zugriff zu aktivieren. Überprüfen Sie immer die Verfügbarkeit der Kamera auf dem Gerät, bevor Sie eine Berechtigung anfordern, mit PackageManager.hasSystemFeature. Eine solche Überprüfung verhindert unnötige Anfragen auf Geräten ohne Kamera und verbessert die Benutzererfahrung.

Optimierung der Kameraleistung

Die Leistungsoptimierung bei der Arbeit mit der Kamera ist wichtig für einen reibungslosen App-Betrieb. Die Aufnahme von Videos in hoher Auflösung verbraucht erhebliche CPU- und Batterieressourcen.

Verwenden Sie unter iOS AVCaptureSessionPresetMedium anstelle der maximalen Auflösung, wenn die App keine 4K-Aufnahme benötigt. Unter Android ermöglicht CameraX die Konfiguration von ImageCapture mit einer Zielauflösung über ImageCaptureConfig.Builder. Es ist auch wichtig, die Kamera freizugeben, wenn die App in den Hintergrund wechselt, und sie bei der Rückkehr wieder zu erfassen. Dies ist eine von Google und Apple empfohlene Standardpraxis zur Schonung des Akkus.

Best Practices für die Anforderung des Kamerazugriffs

Best Practices helfen, die Zustimmungsrate für Camera Permission zu erhöhen und eine Ablehnung der App durch den App Store oder Google Play zu vermeiden.

Verwenden Sie eine Vorschau zur Erklärung

Zeigen Sie vor dem Systemdialog einen Bildschirm mit einem Beispiel, wie die Kamera verwendet wird: ein Scan-Interface-Bild, ein Profilfoto-Rahmen, ein Beispiel eines erkannten QR-Codes. Visuelle Erklärungen funktionieren besser als textuelle. Laut UX Movement (2024) erhöht das Hinzufügen einer visuellen Vorschau die Zustimmungsrate auf 72 %.

Fordern Sie die Berechtigung im Moment der Aktion an

Fordern Sie Camera Permission niemals beim ersten App-Start an. Ein Benutzer, der die App gerade geöffnet hat, wird eher ablehnen, wenn er den Kontext nicht versteht. Fordern Sie den Zugriff erst an, wenn der Benutzer eine Schaltfläche drückt, die die Kamera erfordert: „Profilfoto aufnehmen“, „Code scannen“, „Videoanruf starten“. Ein kontextueller Auslöser macht die Anfrage sinnvoller.

Bieten Sie eine Alternative an

Wenn der Benutzer die Camera Permission verweigert, bieten Sie eine alternative Möglichkeit zur Durchführung der Aktion an: Auswahl eines Fotos aus der Galerie, manuelle Eingabe der QR-Code-Daten, Hochladen eines Bildes vom Gerät. Eine Verweigerung sollte die App-Funktionalität nicht vollständig blockieren — dies ist eine Anforderung der Designempfehlungen von Google Play und App Store.

Häufig gestellte Fragen

Was passiert, wenn der Benutzer die Camera Permission verweigert?

Wenn die App beim Versuch, die Kamera ohne Berechtigung zu öffnen, abstürzt, erhalten Sie einen Fehler. Sie müssen den Status vorab über checkSelfPermission unter Android oder authorizationStatus unter iOS überprüfen und ein alternatives Szenario anbieten.

Ist Camera Permission zum Scannen von QR-Codes erforderlich?

Ja, das Scannen von QR-Codes über die Kamera erfordert Camera Permission. Ein alternativer Ansatz ist die Verwendung von QR-Code-Erkennungsbibliotheken aus einem Bild ohne Kamera (z. B. Herunterladen eines Fotos mit dem Code aus der Galerie), dies erfordert jedoch die Photo Library Permission.

Wie fordere ich Camera Permission auf Android ohne eine Activity an?

In der Jetpack Compose-Architektur können Sie rememberLauncherForActivityResult mit ActivityResultContracts.RequestPermission in einer composable-Funktion verwenden. Für Dienste ohne UI ist eine direkte Berechtigungsanfrage nicht möglich — die Kontrolle muss an eine Activity übergeben werden.

Warum stürzt meine iOS-App beim Öffnen der Kamera ab?

Die wahrscheinlichste Ursache ist das Fehlen des Schlüssels NSCameraUsageDescription in Info.plist. Seit iOS 10 führt jeder Zugriff auf AVCaptureDevice ohne diesen Schlüssel zu einem Absturz mit einer NSInvalidArgumentException.

Wie setze ich Camera Permission für Tests zurück?

Unter Android setzen Sie die App-Einstellungen über Settings → Apps → [App] → Permissions zurück. Unter iOS verwenden Sie Settings → [App] → Camera toggle. Für Testautomatisierung unter iOS können Sie XCUITest mit resetAuthorizationStatus verwenden.

Zusammenfassung

  • Camera Permission ist eine obligatorische Laufzeitberechtigung für den Kamerazugriff auf beiden mobilen Plattformen.
  • Android erfordert die Deklaration von CAMERA im Manifest und die Anforderung über die Activity Result API mit shouldShowRequestPermissionRationale-Prüfung.
  • iOS erfordert den Schlüssel NSCameraUsageDescription in Info.plist und einen Aufruf von AVCaptureDevice.requestAccess(for: .video).
  • Kontextuelle Anfrage erhöht die Zustimmungsrate laut UX Movement auf 72 %.
  • Nutzungsszenarien umfassen Foto- und Videoaufnahme, QR-Code-Scannen, Videoanrufe und AR-Funktionen.
  • Alternativszenario bei Verweigerung (Galerieauswahl, manuelle Eingabe) ist zur Erfüllung der App-Store-Anforderungen obligatorisch.
  • Vorbereitender Bildschirm mit visueller Erklärung reduziert die Verweigerungsrate erheblich.

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch