Fichier de permission en écriture erreur dans Android
Je suis en train d'écrire un fichier sur carte sd et de définir <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
il fonctionne bien, jusqu'à 3.x mais sur la 4.0, il donne l'erreur ci-dessous.
java.io.IOException: open failed: EACCES (Permission denied)
at java.io.File.createNewFile(File.java:940)
at com.gt.mLearning.app.VideoViewActivity.copyFile(VideoViewActivity.java:204)
at com.gt.mLearning.app.VideoViewActivity.access$3(VideoViewActivity.java:193)
at com.gt.mLearning.app.VideoViewActivity$Loader.doInBackground(VideoViewActivity.java:61)
at com.gt.mLearning.app.VideoViewActivity$Loader.doInBackground(VideoViewActivity.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:264)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied)
at libcore.io.Posix.open(Native Method)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
at java.io.File.createNewFile(File.java:933)
Toute aide ou suggestion?
rohit
Êtes-vous de vérifier avec l'Émulateur ou de l'Appareil?
OriginalL'auteur Rohit Mandiwal | 2012-07-19
Vous devez vous connecter pour publier un commentaire.
Juste deviner, mais ne vous avez probablement votre téléphone est toujours connecté à l'ordinateur? Cette erreur peut se produire si votre carte sd est toujours bloqué comme un périphérique usb.
Espérons que cela a aidé,
Tobias
J'ai eu le même problème et vous m'avez donné la réponse. Merci pour cette!
Bien sûr, vous êtes les bienvenus (comme tout les votes 🙂
Mon application a fonctionné comme un charme sur mon SGS2, maintenant que j'ai commencé les tests sur les appareils plus anciens, et avec un vieux HTC sans stockage externe, il a cassé l'écriture dans un fichier (parce qu'il était connecté à un PC). Débrancher le téléphone à partir du pc a fait le travail.
OriginalL'auteur Tobias Reich
Dernier, j'ai découvert que le problème de périphérique à périphérique spécifique. J'ai installé l'application Gestionnaire de Fichiers à partir de Android market et il ne montre pas l'autorisation d'écriture. Cela signifie que le système d'exploitation Android de mise en œuvre de ce fabricant ne fournissent pas la permission d'écriture qui est à l'origine du problème.
OriginalL'auteur Rohit Mandiwal
Vous avez probablement codé en dur externe répertoire de stockage et il travaille sur des dispositifs particuliers.
De l'affichage de votre code aidera beaucoup plus que juste le journal.
Environment.getExternalStorageDirectory().canWrite()
et l'obtention de l'erreur 🙁 tristeest-ce que votre code de travail en dehors de AsyncTask?
pas essayé.. est-ce que les choses?
eh bien, la seule chose qui me vient à l'esprit. Ou le problème pourrait être dans le canWrite() la méthode d'essai en utilisant la méthode de ce post - stackoverflow.com/questions/6942677/...
vérifier les réponses de ce post stackoverflow.com/questions/6942677/...
OriginalL'auteur mihail
Vous pouvez vérifier que vous avez juste mis à jour votre Android O/S, trop. Certains changements majeurs cause sdcard problème. Pour moi, je l'ai mise à jour mon Android O/S en SHV-E160K de 2.3.5 pour 4.1.2 avec Odin qui est de samsung firmware de mise à jour de l'application. Et j'ai été confrontés à un problème.
Mon message d'erreur détaillé comme suit :
La raison en est 4.1.2 ne pouvais pas reconnaître système de fichiers dans 2.3.5. - Je résoudre ce formatage de la carte sd de stockage. format ne signifie pas supprimer vos informations personnelles telles que l'adresse, un mémo ou une histoire. Après le formatage, il fonctionne comme par magie.
OriginalL'auteur Joshua
Cela peut vous aider.
J'ai connu le même problème lors de l'écriture du fichier sur la carte sd. J'ai mis toutes les autorisations nécessaires pour écrire le fichier, mais j'ai utilisé de l'objet fichier comme ci-dessous:
Mal :
Fichier monfichier = new File(de l'Environnement.getExternalStorageDirectory().getAbsoluteFile()+nom de fichier);
Corriger:
Fichier monfichier = new File(de l'Environnement.getExternalStorageDirectory().getAbsoluteFile(), fileName);
Cela signifie que le chemin était mauvais.
OriginalL'auteur Smeet