Kamera-Intents
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Für grundlegende Kameraaktionen wie das Aufnehmen von Fotos oder Videos mit der Standardkamera-App des Geräts ist keine Integration mit einer Kamerabibliothek erforderlich. Verwenden Sie stattdessen ein Intent
.
Foto mit einer Kamera-App aufnehmen
Unter Android werden Aktionen an andere Anwendungen delegiert, indem ein Intent
aufgerufen wird. Dieser Prozess umfasst drei Teile: die Intent
selbst, einen Aufruf zum Starten der externen Activity
und Code zum Verarbeiten der Bilddaten, wenn der Fokus auf Ihre Aktivität zurückkehrt.
Hier ist eine Funktion, die eine Intent
aufruft, um ein Foto aufzunehmen.
Kotlin
val REQUEST_IMAGE_CAPTURE = 1
private fun dispatchTakePictureIntent() {
val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
try {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE)
} catch (e: ActivityNotFoundException) {
// display error state to the user
}
}
Java
static final int REQUEST_IMAGE_CAPTURE = 1;
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
try {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
} catch (ActivityNotFoundException e) {
// display error state to the user
}
}
Video mit einer Kamera-App aufnehmen
Sie können auch einen Intent
aufrufen, um ein Video aufzunehmen.
Kotlin
val REQUEST_VIDEO_CAPTURE = 1
private fun dispatchTakeVideoIntent() {
Intent(MediaStore.ACTION_VIDEO_CAPTURE).also { takeVideoIntent ->
takeVideoIntent.resolveActivity(packageManager)?.also {
startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE)
} ?: run {
//display error state to the user
}
}
}
Java
static final int REQUEST_VIDEO_CAPTURE = 1;
private void dispatchTakeVideoIntent() {
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
if (takeVideoIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE);
}
else {
//display error state to the user
}
}
Die Methode startActivityForResult()
ist durch eine Bedingung geschützt, die resolveActivity()
aufruft. Diese Methode gibt die erste Aktivitätskomponente zurück, die die Intent
verarbeiten kann. Führen Sie diese Prüfung durch, um sicherzustellen, dass Sie eine Intent
aufrufen, die Ihre App nicht zum Absturz bringt.
Zusätzliche Ressourcen
Verwenden Sie für grundlegende Kameraaktionen ein Intent
. Andernfalls empfiehlt es sich, für alles, was über die grundlegende Aufnahme von Bildern oder Videos hinausgeht, die Camera2- und CameraX-Bibliotheken zu verwenden.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-08-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-27 (UTC)."],[],[],null,["# Camera intents\n\nTo perform basic camera actions like capturing a photo or video using the device's default camera application, you do not need to integrate with a [Camera library](/training/camera/choose-camera-library). Instead, use an [`Intent`](https://developer.android.com/reference/android/content/Intent).\n\nTake a photo with a camera app\n------------------------------\n\nAndroid delegates actions to other applications by invoking an `Intent`. This process involves three pieces: the `Intent` itself, a call to start the external `Activity`, and some code to handle the image data when focus returns to your activity.\n\nHere's a function that invokes an `Intent` to capture a photo. \n\n### Kotlin\n\n```kotlin\nval REQUEST_IMAGE_CAPTURE = 1\n \nprivate fun dispatchTakePictureIntent() {\n val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)\n try {\n startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE)\n } catch (e: ActivityNotFoundException) {\n // display error state to the user\n }\n}\n```\n\n### Java\n\n```java\nstatic final int REQUEST_IMAGE_CAPTURE = 1;\n \nprivate void dispatchTakePictureIntent() {\n Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);\n try {\n startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);\n } catch (ActivityNotFoundException e) {\n // display error state to the user\n }\n}\n```\n\nRecord a video with a camera app\n--------------------------------\n\nYou can also invoke an `Intent` to capture a video. \n\n### Kotlin\n\n```kotlin\nval REQUEST_VIDEO_CAPTURE = 1\n \nprivate fun dispatchTakeVideoIntent() {\n Intent(MediaStore.ACTION_VIDEO_CAPTURE).also { takeVideoIntent -\u003e\n takeVideoIntent.resolveActivity(packageManager)?.also {\n startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE)\n } ?: run {\n //display error state to the user\n }\n }\n}\n```\n\n### Java\n\n```java\nstatic final int REQUEST_VIDEO_CAPTURE = 1;\n \nprivate void dispatchTakeVideoIntent() {\n Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);\n if (takeVideoIntent.resolveActivity(getPackageManager()) != null) {\n startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE);\n }\n else {\n //display error state to the user\n }\n}\n```\n\nThe `startActivityForResult()` method is protected by a condition that calls `resolveActivity()`, which returns the first activity component that can handle the `Intent`. Perform this check to ensure that you are invoking an `Intent` that won't crash your app.\n\nAdditional Resources\n--------------------\n\nFor basic camera actions, use an `Intent`. Otherwise, it is recommended to use the Camera2 and CameraX libraries for anything more complex than basic image or video capture.\n\n- [CameraX camera package](https://developer.android.com/training/camerax)\n- [Camera2 camera package](https://developer.android.com/training/camera2)\n- [Camera sample projects](https://github.com/android/camera-samples)"]]