Répertoire de données n'a pas d'autorisation de lecture/écriture dans Android
Je m en utilisant Android 1.5 mon répertoire de données n'a pas les autorisations de lecture/écriture
System.out.println("DAta can write??--->"+Environment.getDataDirectory().canWrite());
System.out.println("DAta can read??--->"+Environment.getDataDirectory().canRead());
Donc merci de me suggérer comment fournir les autorisations pour le répertoire de données.
Ce que je suis en train de faire est de créer un fichier et ajouter du contenu dans la mémoire de Données de l'émulateur, comme ci-dessous
private void writeToSDCard() {
try {
File lroot = Environment.getDataDirectory();
if (lroot.canWrite()){
File lfile = new File(lroot, "samplefile.txt");
FileWriter lfilewriter = new FileWriter(lfile);
BufferedWriter lout = new BufferedWriter(lfilewriter);
lout.write("XXXXXXXXXXXXXXXXXX");
lout.close();
}
} catch (IOException e) {
Log.e(m_cTAG, "Could not write file " + e.getMessage());
}
}
Vous devez vous connecter pour publier un commentaire.
Vous ne devriez pas être à la recherche dans le Répertoire de Données. C'est un système de répertoire dans la mémoire du téléphone - généralement
/data
- et votre application aura jamais la permission d'écrire.Le répertoire de votre application doit écrire des fichiers est retournée par la
Contexte.getFilesDir()
méthode. Il sera quelque chose comme/data/data/com.yourdomain.YourApp/files
.Si vous voulez écrire sur un fichier dans la mémoire du téléphone utilisation de la
Contexte.openFileOutput()
méthode.Si vous voulez que le chemin d'accès à la carte sd puis utilisez
de l'Environnement.getExternalStorageDirectory()
méthode. Pour écrire sur la carte sd, vous aurez besoin de donner à votre application les autorisations appropriées par adjonction, à votre Manifeste:Si vous allez écrire sur la carte sd, vous aurez également besoin de vérifier son état avec la
getExternalStorageState()
méthode.Si vous êtes le stockage de petits fichiers à faire avec votre application, alors elles peuvent aller dans la mémoire du téléphone et non sur la Carte SD, il faut donc utiliser la
Context.openFileOutput()
etContext.openFileInput()
méthodes.Dans votre code envisager quelque chose comme: