wake-up-neo.com

Android-Ausnahme: Java.io.IOException: Öffnen fehlgeschlagen: EACCES (Berechtigung verweigert)

Aus irgendeinem Grund stelle ich ständig Probleme mit verschiedenen Arten von Android-Geräten, um die aufgenommenen Bilder auf dem Gerätespeicher zu speichern.

Hier ist das detaillierte Fehlerprotokoll, von was ich eigentlich bekomme.

Java.io.IOException: open failed: EACCES (Permission denied)
at Java.io.File.createNewFile(File.Java:940)
at com.parkhya.pick_for_shareAflash.HomeActivity.resizeImage(HomeActivity.Java:456)
at com.parkhya.pick_for_shareAflash.HomeActivity.onActivityResult(HomeActivity.Java:393)
Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied)
at Java.io.File.createNewFile(File.Java:933)

Obwohl alle anderen Android-Apps, wie Instagram und andere, in der Lage sind, die auf der Kamera angeklickten Bilder auf den Geräten zu speichern ..... Jeder kann Ihnen bitte vorschlagen, was ich tun soll, damit meine App das speichert Kamerabilder in SD-Karte.

24
srsmohit

fügen Sie die Berechtigung für hinzu. Ermöglicht einer Anwendung, auf einen externen Speicher zu schreiben.

<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE"/>

Ermöglicht einer App, von einem externen Speicher zu lesen.

Jede App, die die Berechtigung WRITE_EXTERNAL_STORAGE deklariert, erhält diese Berechtigung implizit.

Diese Berechtigung wird ab API-Ebene 19 erzwungen. Vor API-Ebene 19 wird diese Berechtigung nicht erzwungen, und alle Apps können weiterhin auf externen Speicher lesen. Sie können Ihre App mit erzwungener Berechtigung testen, indem Sie Protect USB-Speicher unter Entwickleroptionen in der App Einstellungen auf einem Gerät aktivieren, auf dem Android 4.1 oder höher läuft.

22
Jitesh Upadhyay

Das kann dir helfen. Ich habe das gleiche Problem, wenn ich die Datei auf SD-Karte schreibe. Ich habe alle erforderlichen Berechtigungen zum Schreiben der Datei festgelegt, aber ich habe das Dateiobjekt wie folgt verwendet:

Falsch:

File myFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile()+fileName);

Richtig:

File myFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile(), fileName);

Das heißt, der Weg war falsch.

21
Smeet

Lösung was ich finde ist 

bearbeiten Sie den Emulator 1. Gehen Sie zum virtuellen Android-Geräte-Manager und bearbeiten Sie den Emulator 2. Setzen Sie für den angesehenen Emulator 100 MB für die SD-Karte und sagen Sie Ok 3. Speichern und schließen Sie den Emulator und starten Sie 4. Pfad gespeichert ist, klicken Sie auf DDMS mnt/sdcard/IhrDateiname Es hat für mich funktioniert, die App gibt keinen Fehler und funktioniert 

0
madmaskd