Je veux lire le fichier du stockage externe. J'ai téléchargé le fichier dans Eclipse DDMS vers stockage/sdcard (image ci-dessous). Mais chaque fois que j'essayais de lire, je recevais une erreur de permission refusée. Y a-t-il un problème avec l'autorisation de mon fichier? Ou dois-je ajouter quoi que ce soit dans le fichier manifeste (je n'écris rien pour le moment)?
Toute aide serait appréciée.
Code:
public void extimport(View v){
EditText xedittxt = (EditText) findViewById(R.id.frmexttxt);
String xedit = xedittxt.getText().toString();
xedit = xedit.trim();
File file;
file = new File(xedit);
StringBuilder text = new StringBuilder();
Log.d("fcheck",""+xedit);
try {
BufferedReader br = new BufferedReader(new FileReader(file)); //THIS LINE THROWS ERROR
Log.d("fcheck","f3"); //This line never got printed
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append('\n');
}
br.close();
resultView = (TextView) findViewById(R.id.header);
resultView.setText(text);
}
catch (IOException e) {
Log.d("File open error",""+e);
Toast.makeText(getApplicationContext(), "Error opening the file.", Toast.LENGTH_SHORT).show();
}
}
LogCat:
11-19 00:21:54.252: D/fcheck(5885): /storage/sdcard/mylibman.csv
11-19 00:21:54.272: D/File open error(5885): Java.io.FileNotFoundException: /storage/sdcard/mylibman.csv: open failed: EACCES (Permission denied)
Assurez-vous que vous avez ajouté l'autorisation de lire le stockage externe dans votre fichier manifeste.
<uses-permission Android:name="Android.permission.READ_EXTERNAL_STORAGE" />
Je rencontrais le même problème et il peut être facilement supprimé en suivant l'une des étapes suivantes: 1. Installez votre application en utilisant -g si vous installez sur Android N et O versions. 2. Accordez l'autorisation manuellement Paramètres-> applications -> "nom_app" -> Autorisations-> Activer le commutateur
Pour les étapes 1 et 2, définissez les autorisations d'utilisation Android: name = "Android.permission.WRITE_EXTERNAL_STORAGE" et les autorisations d'utilisation Android: name = "Android.permission.READ_EXTERNAL_STORAGE" dans AndroidManifest.xml