Speichern Sie das Bild von der Kamera in das private App-Cache-Verzeichnis

Ich möchte ein Bild von der Kamera aufnehmen und es in das private App-Cache-Verzeichnis speichern. Ich merke, dass ich die Kamera-App-Berechtigung geben muss, in mein privates Verzeichnis zu schreiben, also habe ich das Flag FLAG_GRANT_WRITE_URI_PERMISSION hinzugefügt.

Was passiert ist, dass die Kamera App öffnet, kann ich das Bild machen, aber wenn ich auf die OK-Taste klicke, passiert nichts. Die Kamera-App bleibt offen. Kein Protokollausgang. Ich denke, es ist wegen eines Erlaubnisproblems.

  • Wie kann eine benutzerdefinierte Ansicht Zugang zu ihrer Tätigkeit erhalten?
  • Kann nicht starten Android Studio
  • Android - Neuer Kalenderstil DatePicker und TimePicker
  • Unterschied zwischen sauber, gradlew sauber
  • Wie kann ich eine Combobox in Android zeigen?
  • Swipe-Erkennung für jede Zeile der Listenansicht
  •  private void getCameraImage() { try { mTmpFile = File.createTempFile("tmp", ".jpg", getCacheDir()); Uri imgUri = Uri.fromFile(mTmpFile); Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); i.putExtra(MediaStore.EXTRA_OUTPUT, imgUri); i.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); // i.setData(imgUri); // if uncommented, i get an ActivityNotFound Exception startActivityForResult(i, REQUEST_CAMERA); } catch (IOException e) { Log.e(TAG, "getCameraImage()", e); Toast.makeText(this, "Something went wrong", Toast.LENGTH_SHORT).show(); } } 

    Irgendwelche Einsichten, wie kann ich das korrigieren?

    Bearbeiten:

    Wenn ich das Verzeichnis auf die öffentliche SD-Karte ändere, dann geht es gut.

     mTmpFile = File.createTempFile("tmp", ".jpg", Environment.getExternalStorageDirectory()); 

    Danke Simon

  • Google Sign-In requestIdToken gibt null zurück
  • Android, machen Sie ein Bild an einer URL gleich ImageViews Bild
  • Volley Post JsonObjectRequest ignoriert Parameter bei Verwendung von getHeader und getParams
  • Wie man Objekte beim Bau von JSON mit JSONObject verschachtelt
  • Android: NoClassDefFoundError android.os.AsyncTask
  • Android-Unterstützung für AVRCP
  • One Solution collect form web for “Speichern Sie das Bild von der Kamera in das private App-Cache-Verzeichnis”

    Anstatt die Uri zu übergeben, um das Bild zu speichern, kannst du http://developer.android.com/reference/android/hardware/Camera.html#takePicture(android.hardware.Camera.ShutterCallback , android.hardware.Camera.PictureCallback, Android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback)

    Und bekomme den Inhalt in deinem App-Speicher. Von dort aus können Sie alles tun, was Sie wollen.

    Vergessen Sie nicht, dass Kamera-Anwendungen auch die Galerie verwenden und die Galerie App ist nicht erlaubt, Ihr privates Verzeichnis zu überprüfen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.