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.

  • Bildschirm blinkt bei Verwendung eines Webview mit Flash
  • So löschen Sie Stapel zurück zu root-Aktivität, wenn Benutzer die Anwendung verlässt?
  • Bild ist nicht automatisch anpassen
  • Android view.getId () gibt -1 zurück
  • Wie funktionieren Android App-Upgrades technisch?
  • Android-USB-Host-zu-serielle Verbindung?
  •  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

  • Spinner-Funktionalität funktioniert nicht auf Android 6.0.1
  • Erstellen Sie Release-Apk mit Customize-Namensformat in Android Studio
  • Wie fange ich an Aktivität von Android AppWidget?
  • Die JavaCV-Videorecorder-Orientierung ist im Hochformat nicht richtig
  • Längerer Bildschirm Timeout für eine bestimmte Android-Aktivität?
  • Wie gibst du Text in einer android-Layer-List-XML-Datei?
  • 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.