Ich habe eine App, die voll funktionsfähig ist. Es hat nur ein Problem mit meiner Kamera Absicht oder Berechtigungen.Android-Kameraaktivität kehrt nicht zu meiner App zurück, wenn die OK-Taste gedrückt wird
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 keiner von ihnen hat mein Problem behoben. 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 die Kamera Absicht erstellt und startet es:
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.parse(imagePath));
startActivityForResult(intent, 11);
Ich habe für imagePath
mehrere Werte versucht (die einen String ist), aber die Kamera OK-Taste ist mit einem von ihnen nicht funktioniert. Dies sind die Wege Ich habe versucht:
/mnt/sdcard/<appName>/cameraImages/image1.jpg
from Environment.getExternalStorageDirectory()
/mnt/sdcard/Android/data/<appPkg>/cache/<appName>/cameraImages/image1.jpg
from context.getExternalCacheDir()
/mnt/sdcard/Android/data/<appPkg>/cache/<appName>/cameraImages/image1.jpg
from context.getCacheDir()
Ich habe die folgenden Berechtigungen in meinem Manifest-Datei:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Könnt ihr mir helfen, herauszufinden, was mit meinem Code falsch ist, oder sagen Sie mir, was Ein gültiger Pfad könnte sein? 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, kompiliert mit dem 4.1 SDK, und meine Mindestversion ist API 8 (2.2).
Ich habe einen Fall für die Absicht in onActivityResult()
gestellt, aber ich glaube nicht, dass Sie diesen Code sehen müssen, weil es das Problem nicht beeinflussen sollte.
check in realen Gerät einmal. Überprüfen Sie auch [diese] (http://stackoverflow.com/a/7224771/646806) – RobinHood
Wird 'onActivityResult()' aufgerufen? Kannst du etwas in den Protokollen sehen? –
Jemand hat die Version der App mit 'context.getCacheDir()' für den 'imagePath' überprüft und sie hatten die gleiche Erfahrung; Die OK-Taste in der Kamera-App würde für sie nicht funktionieren. Außerdem wird 'onActivityResult()' nicht aufgerufen, wenn ich die OK-Taste drücke. – cmasupra