Ich habe eine App, die funktioniert. Es hat nur ein Problem mit meiner Kamera Absicht oder Berechtigungen.
Die App soll die Kameraaktivität starten, wenn der Benutzer eine Taste drückt. Das funktioniert einwandfrei, aber wenn der Benutzer ein Bild annimmt, indem er auf die Schaltfläche OK auf der Kamera klickt, wird er nicht in meiner App angezeigt. Wenn sie die Abbrechen-Taste an der Kamera drücken, kommt sie wie erwartet zu meiner App zurück.
Ich habe alle ähnlichen Fragen gelesen, die ich hier finden kann, aber keine von ihnen hat mein Problem gelöst. Ich muss der Kamera genau sagen, wo das Bild gespeichert werden soll, weil ich in meiner App zwischen 2 wechseln möchte. Hier ist der Code, der den Camera Intent erstellt und ihn startet:
%Vor% Ich habe mehrere Werte für imagePath
versucht (was ein String ist), aber die OK-Taste der Kamera hat mit keinem von ihnen funktioniert. Dies sind die Pfade, die ich ausprobiert habe:
Ich habe die folgenden Berechtigungen in meiner Manifestdatei:
%Vor%Können Sie mir helfen, herauszufinden, was mit meinem Code nicht stimmt, oder mir sagen, wie ein gültiger Pfad sein könnte? Ich bevorzuge es, wenn das Bild an einem Speicherort im Cache gespeichert wird, da es nicht wichtig ist, dass das Bild nach dem Verlassen der Anwendung weiterhin existiert, aber es ist mir egal, wer Zugriff auf das Bild hat.
Ich mache alle Tests auf dem 4.1 Emulator, kompiliere mit dem 4.1 SDK, und meine Mindestversion ist API 8 (2.2).
Ich habe die Absicht in onActivityResult()
dargelegt, aber ich glaube nicht, dass ihr diesen Code sehen solltet, weil er das Problem nicht beeinflussen sollte.
Ich war in der Lage, das Problem herauszufinden. Es scheint, dass Sie Uri.parse(imagePath)
nicht verwenden müssen, sondern Uri.fromFile(new File(imagePath))
, wenn Sie das Extra hinzufügen. Ich habe den neuen Intent-Code unten für den Fall verwendet, dass er jedem hilft, der das gleiche Problem hat.
Ich verwende jetzt erfolgreich context.getExternalCacheDir()
, um den vollständigen Pfad imagePath
zu erstellen. Der resultierende Pfad, den ich erstellt habe, ist /mnt/sdcard/Android/data/<appPkg>/cache/<appName>/cameraImages/image1.jpg
.
Tags und Links java android android-camera