Autorisation refusée lors de l'écriture dans sdCard
Je suis en train d'écrire un fichier dans la carte sd, mais j'obtiens l'erreur dans le logcat :
01-24 09:03:33.647: W/System.err(3353): java.io.FileNotFoundException: /mnt/sdcard/fun/itisfun.txt: open failed: EACCES (Permission denied)
01-24 08:24:28.007: W/System.err(3353): Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied)
01-24 09:03:33.756: W/System.err(3353):at libcore.io.Posix.open(Native Method)
Et voici mon code à écrire dans SDCard :
File root = null;
try {
//check for SDcard
root = Environment.getExternalStorageDirectory();
Log.i(TAG,"path.." +root.getAbsolutePath());
//check sdcard permission
if (root.canWrite()){
File fileDir = new File(root.getAbsolutePath()+"/fun/");
fileDir.mkdirs();
File file = new File(fileDir, "itisfun.txt");
FileWriter filewriter = new FileWriter(file);
BufferedWriter out = new BufferedWriter(filewriter);
out.write("I m enjoying......dude");
out.close();
}
} catch(...) {
...
}
Manifeste :
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<permission android:name="android.permission.INTERNET"></permission>
OriginalL'auteur zaamm | 2013-01-23
Vous devez vous connecter pour publier un commentaire.
Pour l'écriture sur la carte sd vous devez donner la permission à votre fichier manifeste
OriginalL'auteur Ram kiran
Vous devez vous assurer que vous avez la permission @Ram mentionne, et la Carte SD est montée. Vous pouvez vérifier si il est monté par:-
Vous devez gérer une démonté la carte gracieusement, mais d'un commun gotcha est que si votre téléphone est raccordé via le câble USB, vous pouvez l'avoir monté par l'intermédiaire de votre OS de bureau, ce qui signifie qu'il n'est pas monté par Android.
Merci,
Ryan
Bien l'original exception FileNotFoundException, êtes-vous sûr que le fichier est-il? Pouvez-vous poster les journaux si ils ont changé?
Pas changé Ryan
OriginalL'auteur Ryan
Voici un peu de code que j'utilise,
Si il n'y a pas de stockage externe, il utilise essentiellement les téléphones cache interne (pas bon pour les gros fichiers)
Lire cette
voilà j'ai édité...mais son vraiment rpetty compliqué
OriginalL'auteur Hades
Si vous êtes sur la 4.4, lire ici: http://www.androidcentral.com/kitkat-sdcard-changes Fondamentalement, vous ne pouvez plus lire et écrire n'importe où sur le disque. Vous ne pouvez écrire à votre répertoire privé et les répertoires que vous êtes devenu le propriétaire du.
OriginalL'auteur Gabe Sechan
fun
et le fichieritisfun.txt
existe sur la carte sd, si vous voulez faire des programme, vous devez ajouter l'autorisation:<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
Cette autorisation permet à l'application de créer un fichier ou un répertoire, l'autorisation de:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
seulement permet à l'application de lire et d'écrire le fichier existe déjà.<application>
tag, généralement avant.OriginalL'auteur twlkyao