web-dev-qa-db-fra.com

Lire le fichier dans Android - autorisation de fichier refusée

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.

Folder Tree

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)
16
abdfahim

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" />
47
GrIsHu

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

3
Vsw10